Skip to content

Commit 864946f

Browse files
committed
Generate urls in the custom formatter to ensure it works
1 parent 6804f21 commit 864946f

File tree

1 file changed

+25
-22
lines changed

1 file changed

+25
-22
lines changed

spec/danger_packwerk/danger_packwerk_spec.rb

Lines changed: 25 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ module DangerPackwerk
2626
context 'using inputted formatter' do
2727
let(:packwerk) { dangerfile.packwerk }
2828
let(:constant) do
29-
sorbet_double(Packwerk::ConstantContext, location: Packwerk::Node::Location.new(12, 5), package: double(name: 'packs/some_pack'), name: '::PrivateConstant')
29+
sorbet_double(Packwerk::ConstantContext, location: 'some/location.rb', package: double(name: 'packs/some_pack'), name: '::PrivateConstant')
3030
end
3131
let(:generic_dependency_violation) do
3232
sorbet_double(
@@ -58,8 +58,11 @@ module DangerPackwerk
5858
Class.new do
5959
include Check::OffensesFormatter
6060

61-
def format_offenses(offenses, repo_link, org_name, repo_url_builder: nil)
62-
offenses.map(&:message).join("\n\n")
61+
def format_offenses(offenses, repo_link, org_name, repo_url_builder:)
62+
constant_location = offenses.first.reference.constant.location
63+
constant_name = offenses.first.reference.constant.name
64+
url = repo_url_builder&.call(constant_location.to_s)
65+
offenses.map { |offense| "#{offense.message} [#{constant_name}](#{url})" }.join("\n\n")
6366
end
6467
end
6568
end
@@ -117,7 +120,7 @@ def format_offenses(offenses, repo_link, org_name, repo_url_builder: nil)
117120
actual_markdowns = dangerfile.status_report[:markdowns]
118121
expect(actual_markdowns.count).to eq 1
119122
actual_markdown = actual_markdowns.first
120-
expect(actual_markdown.message).to eq 'Vanilla message about privacy violations'
123+
expect(actual_markdown.message).to eq 'Vanilla message about privacy violations [::PrivateConstant](https://github.com/MyOrg/my_repo/blob/my_branch/some/location.rb)'
121124
expect(actual_markdown.line).to eq 12
122125
expect(actual_markdown.file).to eq 'packs/referencing_pack/some_file.rb'
123126
expect(actual_markdown.type).to eq :markdown
@@ -136,7 +139,7 @@ def format_offenses(offenses, repo_link, org_name, repo_url_builder: nil)
136139
actual_markdowns = dangerfile.status_report[:markdowns]
137140
expect(actual_markdowns.count).to eq 1
138141
actual_markdown = actual_markdowns.first
139-
expect(actual_markdown.message).to eq 'Vanilla message about privacy violations'
142+
expect(actual_markdown.message).to eq 'Vanilla message about privacy violations [::PrivateConstant](https://github.com/MyOrg/my_repo/blob/my_branch/some/location.rb)'
140143
expect(actual_markdown.line).to eq 12
141144
expect(actual_markdown.file).to eq 'packs/referencing_pack/some_file.rb'
142145
expect(actual_markdown.type).to eq :markdown
@@ -154,7 +157,7 @@ def format_offenses(offenses, repo_link, org_name, repo_url_builder: nil)
154157
actual_markdowns = dangerfile.status_report[:markdowns]
155158
expect(actual_markdowns.count).to eq 1
156159
actual_markdown = actual_markdowns.first
157-
expect(actual_markdown.message).to eq 'Vanilla message about dependency violations'
160+
expect(actual_markdown.message).to eq 'Vanilla message about dependency violations [::PrivateConstant](https://github.com/MyOrg/my_repo/blob/my_branch/some/location.rb)'
158161
expect(actual_markdown.line).to eq 12
159162
expect(actual_markdown.file).to eq 'packs/referencing_pack/some_file.rb'
160163
expect(actual_markdown.type).to eq :markdown
@@ -171,7 +174,7 @@ def format_offenses(offenses, repo_link, org_name, repo_url_builder: nil)
171174
actual_markdowns = dangerfile.status_report[:markdowns]
172175
expect(actual_markdowns.count).to eq 1
173176
actual_markdown = actual_markdowns.first
174-
expect(actual_markdown.message).to eq "Vanilla message about dependency violations\n\nVanilla message about privacy violations"
177+
expect(actual_markdown.message).to eq "Vanilla message about dependency violations [::PrivateConstant](https://github.com/MyOrg/my_repo/blob/my_branch/some/location.rb)\n\nVanilla message about privacy violations [::PrivateConstant](https://github.com/MyOrg/my_repo/blob/my_branch/some/location.rb)"
175178
expect(actual_markdown.line).to eq 12
176179
expect(actual_markdown.file).to eq 'packs/referencing_pack/some_file.rb'
177180
expect(actual_markdown.type).to eq :markdown
@@ -193,7 +196,7 @@ def format_offenses(offenses, repo_link, org_name, repo_url_builder: nil)
193196
actual_markdowns = dangerfile.status_report[:markdowns]
194197
expect(actual_markdowns.count).to eq 1
195198
actual_markdown = actual_markdowns.first
196-
expect(actual_markdown.message).to eq "Vanilla message about dependency violations\n\nVanilla message about privacy violations"
199+
expect(actual_markdown.message).to eq "Vanilla message about dependency violations [::PrivateConstant](https://github.com/MyOrg/my_repo/blob/my_branch/some/location.rb)\n\nVanilla message about privacy violations [::PrivateConstant](https://github.com/MyOrg/my_repo/blob/my_branch/some/location.rb)"
197200
expect(actual_markdown.line).to eq 12
198201
expect(actual_markdown.file).to eq "#{root_path}packs/referencing_pack/some_file.rb"
199202
expect(actual_markdown.type).to eq :markdown
@@ -217,7 +220,7 @@ def format_offenses(offenses, repo_link, org_name, repo_url_builder: nil)
217220
actual_markdowns = dangerfile.status_report[:markdowns]
218221
expect(actual_markdowns.count).to eq 1
219222
actual_markdown = actual_markdowns.first
220-
expect(actual_markdown.message).to eq 'Vanilla message about privacy violations'
223+
expect(actual_markdown.message).to eq 'Vanilla message about privacy violations [::PrivateConstant](https://github.com/MyOrg/my_repo/blob/my_branch/some/location.rb)'
221224
expect(actual_markdown.line).to eq 12
222225
expect(actual_markdown.file).to eq "#{root_path}packs/referencing_pack/some_file.rb"
223226
expect(actual_markdown.type).to eq :markdown
@@ -262,7 +265,7 @@ def format_offenses(offenses, repo_link, org_name, repo_url_builder: nil)
262265
actual_markdowns = dangerfile.status_report[:markdowns]
263266
expect(actual_markdowns.count).to eq 1
264267
actual_markdown = actual_markdowns.first
265-
expect(actual_markdown.message).to eq "Vanilla message about privacy violations\n\nVanilla message about dependency violations"
268+
expect(actual_markdown.message).to eq "Vanilla message about privacy violations [::PrivateConstant](https://github.com/MyOrg/my_repo/blob/my_branch/some/location.rb)\n\nVanilla message about dependency violations [::PrivateConstant](https://github.com/MyOrg/my_repo/blob/my_branch/some/location.rb)"
266269
expect(actual_markdown.line).to eq 12
267270
expect(actual_markdown.file).to eq 'packs/referencing_pack/some_file.rb'
268271
expect(actual_markdown.type).to eq :markdown
@@ -306,13 +309,13 @@ def format_offenses(offenses, repo_link, org_name, repo_url_builder: nil)
306309
expect(actual_markdowns.count).to eq 2
307310

308311
first_actual_markdown = actual_markdowns.first
309-
expect(first_actual_markdown.message).to eq 'Vanilla message about privacy violations'
312+
expect(first_actual_markdown.message).to eq 'Vanilla message about privacy violations [::PrivateConstant](https://github.com/MyOrg/my_repo/blob/my_branch/some/location.rb)'
310313
expect(first_actual_markdown.line).to eq 12
311314
expect(first_actual_markdown.file).to eq 'packs/referencing_pack/some_file.rb'
312315
expect(first_actual_markdown.type).to eq :markdown
313316

314317
second_actual_markdown = actual_markdowns.last
315-
expect(second_actual_markdown.message).to eq 'Vanilla message about privacy violations'
318+
expect(second_actual_markdown.message).to eq 'Vanilla message about privacy violations [::PrivateConstant](https://github.com/MyOrg/my_repo/blob/my_branch/some/location.rb)'
316319
expect(second_actual_markdown.line).to eq 22
317320
expect(second_actual_markdown.file).to eq 'packs/referencing_pack/some_file.rb'
318321
expect(second_actual_markdown.type).to eq :markdown
@@ -356,13 +359,13 @@ def format_offenses(offenses, repo_link, org_name, repo_url_builder: nil)
356359
expect(actual_markdowns.count).to eq 2
357360

358361
first_actual_markdown = actual_markdowns.first
359-
expect(first_actual_markdown.message).to eq 'Vanilla message about privacy violations'
362+
expect(first_actual_markdown.message).to eq 'Vanilla message about privacy violations [::PrivateConstant](https://github.com/MyOrg/my_repo/blob/my_branch/some/location.rb)'
360363
expect(first_actual_markdown.line).to eq 12
361364
expect(first_actual_markdown.file).to eq 'packs/referencing_pack/some_file.rb'
362365
expect(first_actual_markdown.type).to eq :markdown
363366

364367
second_actual_markdown = actual_markdowns.last
365-
expect(second_actual_markdown.message).to eq 'Vanilla message about privacy violations'
368+
expect(second_actual_markdown.message).to eq 'Vanilla message about privacy violations [::PrivateConstant](https://github.com/MyOrg/my_repo/blob/my_branch/some/location.rb)'
366369
expect(second_actual_markdown.line).to eq 12
367370
expect(second_actual_markdown.file).to eq 'packs/referencing_pack/some_other_file.rb'
368371
expect(second_actual_markdown.type).to eq :markdown
@@ -406,13 +409,13 @@ def format_offenses(offenses, repo_link, org_name, repo_url_builder: nil)
406409
expect(actual_markdowns.count).to eq 2
407410

408411
first_actual_markdown = actual_markdowns.first
409-
expect(first_actual_markdown.message).to eq 'Vanilla message about privacy violations'
412+
expect(first_actual_markdown.message).to eq 'Vanilla message about privacy violations [::PrivateConstant](https://github.com/MyOrg/my_repo/blob/my_branch/some/location.rb)'
410413
expect(first_actual_markdown.line).to eq 12
411414
expect(first_actual_markdown.file).to eq 'packs/referencing_pack/some_file.rb'
412415
expect(first_actual_markdown.type).to eq :markdown
413416

414417
second_actual_markdown = actual_markdowns.last
415-
expect(second_actual_markdown.message).to eq 'Vanilla message about privacy violations'
418+
expect(second_actual_markdown.message).to eq 'Vanilla message about privacy violations [::PrivateConstant](https://github.com/MyOrg/my_repo/blob/my_branch/some/location.rb)'
416419
expect(second_actual_markdown.line).to eq 12
417420
expect(second_actual_markdown.file).to eq 'packs/another_referencing_pack/some_file.rb'
418421
expect(second_actual_markdown.type).to eq :markdown
@@ -463,7 +466,7 @@ def format_offenses(offenses, repo_link, org_name, repo_url_builder: nil)
463466
actual_markdowns = dangerfile.status_report[:markdowns]
464467
expect(actual_markdowns.count).to eq 1
465468
actual_markdown = actual_markdowns.first
466-
expect(actual_markdown.message).to eq "Vanilla message about privacy violations\n\nVanilla message about dependency violations"
469+
expect(actual_markdown.message).to eq "Vanilla message about privacy violations [::PrivateConstant](https://github.com/MyOrg/my_repo/blob/my_branch/some/location.rb)\n\nVanilla message about dependency violations [::PrivateConstant](https://github.com/MyOrg/my_repo/blob/my_branch/some/location.rb)"
467470
expect(actual_markdown.line).to eq 12
468471
expect(actual_markdown.file).to eq 'packs/referencing_pack/some_file.rb'
469472
expect(actual_markdown.type).to eq :markdown
@@ -505,7 +508,7 @@ def format_offenses(offenses, repo_link, org_name, repo_url_builder: nil)
505508
actual_markdowns = dangerfile.status_report[:markdowns]
506509
expect(actual_markdowns.count).to eq 1
507510
actual_markdown = actual_markdowns.first
508-
expect(actual_markdown.message).to eq "Vanilla message about privacy violations\n\nVanilla message about privacy violations"
511+
expect(actual_markdown.message).to eq "Vanilla message about privacy violations [::PrivateConstant](https://github.com/MyOrg/my_repo/blob/my_branch/some/location.rb)\n\nVanilla message about privacy violations [::PrivateConstant](https://github.com/MyOrg/my_repo/blob/my_branch/some/location.rb)"
509512
expect(actual_markdown.line).to eq 12
510513
expect(actual_markdown.file).to eq 'packs/referencing_pack/some_file.rb'
511514
expect(actual_markdown.type).to eq :markdown
@@ -547,7 +550,7 @@ def format_offenses(offenses, repo_link, org_name, repo_url_builder: nil)
547550
actual_markdowns = dangerfile.status_report[:markdowns]
548551
expect(actual_markdowns.count).to eq 1
549552
actual_markdown = actual_markdowns.first
550-
expect(actual_markdown.message).to eq "Vanilla message about privacy violations\n\nVanilla message about privacy violations"
553+
expect(actual_markdown.message).to eq "Vanilla message about privacy violations [::PrivateConstant](https://github.com/MyOrg/my_repo/blob/my_branch/some/location.rb)\n\nVanilla message about privacy violations [::PrivateConstant](https://github.com/MyOrg/my_repo/blob/my_branch/some/location.rb)"
551554
expect(actual_markdown.line).to eq 12
552555
expect(actual_markdown.file).to eq 'packs/referencing_pack/some_file.rb'
553556
expect(actual_markdown.type).to eq :markdown
@@ -602,13 +605,13 @@ def format_offenses(offenses, repo_link, org_name, repo_url_builder: nil)
602605
expect(actual_markdowns.count).to eq 2
603606

604607
first_actual_markdown = actual_markdowns.first
605-
expect(first_actual_markdown.message).to eq 'Vanilla message about privacy violations'
608+
expect(first_actual_markdown.message).to eq 'Vanilla message about privacy violations [::PrivateConstant](https://github.com/MyOrg/my_repo/blob/my_branch/some/location.rb)'
606609
expect(first_actual_markdown.line).to eq 12
607610
expect(first_actual_markdown.file).to eq 'packs/referencing_pack/some_file.rb'
608611
expect(first_actual_markdown.type).to eq :markdown
609612

610613
second_actual_markdown = actual_markdowns.last
611-
expect(second_actual_markdown.message).to eq 'Vanilla message about privacy violations'
614+
expect(second_actual_markdown.message).to eq 'Vanilla message about privacy violations [::PrivateConstant](https://github.com/MyOrg/my_repo/blob/my_branch/some/location.rb)'
612615
expect(second_actual_markdown.line).to eq 12
613616
expect(second_actual_markdown.file).to eq 'packs/another_referencing_pack/some_file.rb'
614617
expect(second_actual_markdown.type).to eq :markdown
@@ -756,7 +759,7 @@ def format_offenses(offenses, repo_link, org_name, repo_url_builder: nil)
756759
actual_markdowns = dangerfile.status_report[:markdowns]
757760
expect(actual_markdowns.count).to eq 1
758761
actual_markdown = actual_markdowns.first
759-
expect(actual_markdown.message).to eq 'Some unknown message'
762+
expect(actual_markdown.message).to eq 'Some unknown message [::PrivateConstant](https://github.com/MyOrg/my_repo/blob/my_branch/some/location.rb)'
760763
expect(actual_markdown.line).to eq 12
761764
expect(actual_markdown.file).to eq 'packs/referencing_pack/some_file.rb'
762765
expect(actual_markdown.type).to eq :markdown

0 commit comments

Comments
 (0)