Skip to content

Commit

Permalink
Fix: recursion when shard name doesn't match dependency name
Browse files Browse the repository at this point in the history
fixes #72
  • Loading branch information
ysbaddaden committed Jan 22, 2016
1 parent 6c44184 commit f2e4c72
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 4 deletions.
4 changes: 4 additions & 0 deletions src/package.cr
Original file line number Diff line number Diff line change
Expand Up @@ -98,6 +98,10 @@ module Shards
self << package
end

if dependency.name != package.spec.name
raise Error.new("Error shard name (#{package.spec.name}) doesn't match dependency name (#{dependency.name})")
end

package.requirements << dependency.version
package
end
Expand Down
12 changes: 12 additions & 0 deletions test/integration/install_test.cr
Original file line number Diff line number Diff line change
Expand Up @@ -224,4 +224,16 @@ class InstallCommandTest < Minitest::Test
refute Dir.exists?(File.join(application_path, "libs", "fails"))
end
end

def test_fails_when_shard_name_doesnt_match
metadata = {
dependencies: {
typo: { git: git_url(:mock), version: "*" }
}
}
with_shard(metadata) do
ex = assert_raises(FailedCommand) { run "shards install --no-color" }
assert_match "Error shard name (mock) doesn't match dependency name (typo)", ex.stdout
end
end
end
14 changes: 10 additions & 4 deletions test/support/cli.cr
Original file line number Diff line number Diff line change
Expand Up @@ -34,14 +34,20 @@ module Shards
yml << "\n"
value.each do |name, version|
yml << " " << name << ":\n"
yml << " git: " << git_url(name).inspect << "\n"

if version.is_a?(String)
case version
when String
yml << " git: " << git_url(name).inspect << "\n"
yml << " version: " << version.inspect << "\n"
elsif version
when Hash
unless version.keys.includes?(:git)
yml << " git: " << git_url(name).inspect << "\n"
end
version.each do |k, v|
yml << " " << k << ": " << v << "\n"
yml << " " << k << ": " << v.inspect << "\n"
end
else
yml << " git: " << git_url(name).inspect << "\n"
end
end
else
Expand Down

0 comments on commit f2e4c72

Please sign in to comment.