Skip to content

Commit 028bd25

Browse files
authored
add tests
1 parent f5fdbd3 commit 028bd25

File tree

1 file changed

+59
-0
lines changed

1 file changed

+59
-0
lines changed
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
# typed: true
2+
# frozen_string_literal: true
3+
4+
require "test_helper"
5+
6+
module Packwerk
7+
class ReferencesFromFileTest < Minitest::Test
8+
setup do
9+
config = Configuration.new
10+
config.stubs(:load_paths).returns({})
11+
@run_context = RunContext.from_configuration(config)
12+
RunContext.stubs(:from_configuration).with(config).returns(@run_context)
13+
@referencer = ReferencesFromFile.new(config)
14+
end
15+
16+
test "raises on parser error" do
17+
offense = Offense.new(file: "something.rb", message: "yo")
18+
@run_context.stubs(:references_from_file).returns(
19+
RunContext::FileReferencesResult.new(file_offenses: [offense], references: [])
20+
)
21+
22+
assert_raises ReferencesFromFile::FileParserError do
23+
@referencer.list("lib/something.rb")
24+
end
25+
end
26+
27+
test "fetches violations for all files from run context" do
28+
references = {
29+
"lib/something.rb" => [
30+
make_fake_reference,
31+
],
32+
"components/ice_cream_sales/app/models/scoop.rb" => [
33+
make_fake_reference,
34+
],
35+
}
36+
@referencer.stubs(:files).returns(references.keys)
37+
38+
references.each do |file, references|
39+
@run_context.stubs(:references_from_file).with(relative_file: file).returns(
40+
RunContext::FileReferencesResult.new(file_offenses: [], references: references)
41+
)
42+
end
43+
44+
assert_equal Set.new(references.values.flatten), Set.new(@referencer.list_all)
45+
end
46+
47+
private
48+
49+
def make_fake_reference
50+
package_name = Array("ilikeletters".chars.sample(5)).join
51+
Reference.new(
52+
package: Package.new(name: package_name),
53+
relative_path: package_name,
54+
constant: ConstantContext.new,
55+
source_location: nil
56+
)
57+
end
58+
end
59+
end

0 commit comments

Comments
 (0)