File: resolver_spec.cr

package info (click to toggle)
shards 0.19.0-1
  • links: PTS, VCS
  • area: main
  • in suites: sid, trixie
  • size: 904 kB
  • sloc: makefile: 117
file content (34 lines) | stat: -rw-r--r-- 1,098 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
require "./spec_helper"

module Shards
  describe Resolver do
    it "find resolver" do
      Resolver.find_resolver("git", "test", "file:///tmp/test")
        .should eq(GitResolver.new("test", "file:///tmp/test"))
    end

    it "compares" do
      resolver = PathResolver.new("name", "/path")

      resolver.should eq(resolver)
      resolver.should eq(PathResolver.new("name", "/path"))
      resolver.should_not eq(PathResolver.new("name2", "/path"))
      resolver.should_not eq(PathResolver.new("name", "/path2"))
      resolver.should_not eq(GitResolver.new("name", "/path"))
    end

    describe "#spec" do
      it "reports parse error location" do
        create_path_repository "foo", "1.2.3"
        create_file "foo", "shard.yml", "name: foo\nname: foo\n"

        resolver = Shards::PathResolver.new("foo", git_path("foo"))

        error = expect_raises(ParseError, %(Error in foo:shard.yml: duplicate attribute "name" at line 2, column 1)) do
          resolver.spec Shards::Version.new("1.2.3")
        end
        error.resolver.should eq resolver
      end
    end
  end
end