Skip to content

Commit 3e9ce40

Browse files
committed
Add more test cases for renamed shards
1 parent b5d1f7c commit 3e9ce40

File tree

3 files changed

+42
-1
lines changed

3 files changed

+42
-1
lines changed

spec/integration/install_spec.cr

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -365,6 +365,42 @@ describe "install" do
365365
end
366366
end
367367

368+
it "fail install old version when shard was renamed" do
369+
metadata = {
370+
dependencies: {
371+
new_name: {git: git_url(:renamed), version: "0.1.0"},
372+
},
373+
}
374+
with_shard(metadata) do
375+
ex = expect_raises(FailedCommand) { run "shards install --no-color" }
376+
ex.stdout.should contain("Error shard name (old_name) doesn't match dependency name (new_name)")
377+
end
378+
end
379+
380+
it "fail install new version when shard was renamed" do
381+
metadata = {
382+
dependencies: {
383+
old_name: {git: git_url(:renamed), version: "0.2.0"},
384+
},
385+
}
386+
with_shard(metadata) do
387+
ex = expect_raises(FailedCommand) { run "shards install --no-color" }
388+
ex.stdout.should contain("Error shard name (new_name) doesn't match dependency name (old_name)")
389+
end
390+
end
391+
392+
it "install untagged version when shard was renamed" do
393+
metadata = {
394+
dependencies: {
395+
another_name: {git: git_url(:renamed), branch: "master"},
396+
},
397+
}
398+
with_shard(metadata) do
399+
run "shards install"
400+
assert_installed "another_name", "0.3.0"
401+
end
402+
end
403+
368404
it "installs executables at version" do
369405
metadata = {
370406
dependencies: {binary: "0.1.0"},

spec/integration/spec_helper.cr

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@ private def setup_repositories
6464
create_git_repository "renamed"
6565
create_git_release "renamed", "0.1.0", "name: old_name\nversion: 0.1.0"
6666
create_git_release "renamed", "0.2.0", "name: new_name\nversion: 0.2.0"
67+
create_git_version_commit "renamed", "0.3.0", "name: another_name\nversion: 0.3.0"
6768

6869
create_git_repository "transitive"
6970
create_file "transitive", "src/version.cr", %(require "version"; puts Version::STRING)

spec/support/factories.cr

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ def create_git_repository(project, *versions)
2828
versions.each { |version| create_git_release project, version }
2929
end
3030

31-
def create_git_release(project, version, shard = true)
31+
def create_git_version_commit(project, version, shard = true)
3232
Dir.cd(git_path(project)) do
3333
if shard
3434
contents = shard.is_a?(String) ? shard : "name: #{project}\nversion: #{version}\n"
@@ -39,6 +39,10 @@ def create_git_release(project, version, shard = true)
3939
end
4040
create_git_commit project, "release: v#{version}"
4141
end
42+
end
43+
44+
def create_git_release(project, version, shard = true)
45+
create_git_version_commit(project, version, shard)
4246
create_git_tag(project, "v#{version}")
4347
end
4448

0 commit comments

Comments
 (0)