Ensure example git repos are valid (#1821)

* Ensure example git repos are valid

It was reported in #1817 that the `lotr_migration.git` repository we use
in `test/test_migrate.rb` is not a valid git repository on when clone,
causing the test suite to fail when run locally.

The reason is because there is no `.git/refs` directory, meaning it's
not really a valid git repository at all. I noticed that the `empty.git`
example repository has the same problem.

This commit simply ensures that the directory structure of these example
repositories are persisted in git.

* Run `test_migrate` tests on CI

Now that we've resolved the issue with the invalid git repository in the
parent commit, we can run all of the tests in our CI environment.
This commit is contained in:
benjamin wil
2022-04-30 23:03:56 -07:00
committed by GitHub
parent 95d35d38da
commit 2dfe103687
3 changed files with 47 additions and 49 deletions
+47 -49
View File
@@ -25,62 +25,60 @@ def load_script(**args)
end end
end end
unless ENV['CI'] context '4.x -> 5.x tag migrator' do
context '4.x -> 5.x tag migrator' do include Rack::Test::Methods
include Rack::Test::Methods
setup do setup do
@path = cloned_testpath("examples/lotr_migration.git") @path = cloned_testpath("examples/lotr_migration.git")
end end
test 'repair broken links' do test 'repair broken links' do
# The original contents of Subdir/Foo.md: # The original contents of Subdir/Foo.md:
# #
# waa # waa
# [[Samwi]] # [[Samwi]]
# [[samwise gamgee.mediaWiki]] # [[samwise gamgee.mediaWiki]]
# [[Samwise Gamgee.mediawiki]] # [[Samwise Gamgee.mediawiki]]
# [[Samwise Gamgee]] # [[Samwise Gamgee]]
# [[Test|Samwise Gamgee#Anchor]] # [[Test|Samwise Gamgee#Anchor]]
# [[Waaa|Test]] # [[Waaa|Test]]
# [[Zaa]] # [[Zaa]]
# #
# The contents will be updated after running the migration script. # The contents will be updated after running the migration script.
load_script load_script
file = ::File.new(::File.join(@path, 'Subdir/Foo.md'), 'r') file = ::File.new(::File.join(@path, 'Subdir/Foo.md'), 'r')
assert_equal <<~FILE_CONTENTS, file.read assert_equal <<~FILE_CONTENTS, file.read
waa waa
[[Samwi]] [[Samwi]]
[[/Samwise Gamgee.mediawiki]] [[/Samwise Gamgee.mediawiki]]
[[/Samwise Gamgee.mediawiki]] [[/Samwise Gamgee.mediawiki]]
[[/Samwise Gamgee.md]] [[/Samwise Gamgee.md]]
[[Test|/Samwise Gamgee.md#Anchor]] [[Test|/Samwise Gamgee.md#Anchor]]
[[Waaa|/Bar/Test.md]] [[Waaa|/Bar/Test.md]]
[[Subsub/Zaa.md]] [[Subsub/Zaa.md]]
FILE_CONTENTS FILE_CONTENTS
end end
test 'change spaced filenames to hyphenated filenames' do test 'change spaced filenames to hyphenated filenames' do
load_script(hyphenate: true) load_script(hyphenate: true)
f = ::File.new(::File.join(@path, 'Home.textile'), 'r') f = ::File.new(::File.join(@path, 'Home.textile'), 'r')
output = f.read output = f.read
assert_equal true, output.include?('[[Bilbo-Baggins.md]]') assert_equal true, output.include?('[[Bilbo-Baggins.md]]')
assert_equal true, output.include?('[[evil|Mordor/Eye-Of-Sauron.md]]') assert_equal true, output.include?('[[evil|Mordor/Eye-Of-Sauron.md]]')
end end
test 'migration with page file dir' do test 'migration with page file dir' do
load_script(page_file_dir: 'Subdir') load_script(page_file_dir: 'Subdir')
f = ::File.new(::File.join(@path, 'Subdir/Foo.md'), 'r') f = ::File.new(::File.join(@path, 'Subdir/Foo.md'), 'r')
output = f.read output = f.read
assert_equal true, output.include?('[[Subsub/Zaa.md]]') assert_equal true, output.include?('[[Subsub/Zaa.md]]')
assert_equal true, output.include?('[[Samwi]]') assert_equal true, output.include?('[[Samwi]]')
end end
teardown do teardown do
FileUtils.rm_rf(@path) FileUtils.rm_rf(@path)
end
end end
end end