hanami 2.1.0.beta2 → 2.1.0.rc1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (38) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +41 -9
  3. data/hanami.gemspec +1 -1
  4. data/lib/hanami/config/actions.rb +14 -0
  5. data/lib/hanami/extensions/action/slice_configured_action.rb +5 -5
  6. data/lib/hanami/extensions/action.rb +4 -4
  7. data/lib/hanami/extensions/view/context.rb +0 -11
  8. data/lib/hanami/extensions/view/part.rb +51 -2
  9. data/lib/hanami/extensions/view/slice_configured_part.rb +72 -0
  10. data/lib/hanami/extensions/view/slice_configured_view.rb +2 -2
  11. data/lib/hanami/helpers/assets_helper.rb +31 -43
  12. data/lib/hanami/routes.rb +33 -2
  13. data/lib/hanami/slice.rb +12 -2
  14. data/lib/hanami/slice_registrar.rb +48 -23
  15. data/lib/hanami/version.rb +1 -1
  16. data/lib/hanami/web/rack_logger.rb +70 -2
  17. data/lib/hanami/web/welcome.html.erb +203 -0
  18. data/lib/hanami/web/welcome.rb +46 -0
  19. data/spec/integration/assets/assets_spec.rb +14 -3
  20. data/spec/integration/logging/request_logging_spec.rb +65 -7
  21. data/spec/integration/rack_app/method_override_spec.rb +97 -0
  22. data/spec/integration/slices_spec.rb +275 -5
  23. data/spec/integration/view/context/assets_spec.rb +0 -8
  24. data/spec/integration/view/context/inflector_spec.rb +0 -8
  25. data/spec/integration/view/context/settings_spec.rb +0 -8
  26. data/spec/integration/view/helpers/part_helpers_spec.rb +2 -2
  27. data/spec/integration/view/helpers/user_defined_helpers/part_helpers_spec.rb +10 -10
  28. data/spec/integration/view/parts/default_rendering_spec.rb +138 -0
  29. data/spec/integration/web/welcome_view_spec.rb +84 -0
  30. data/spec/support/app_integration.rb +22 -4
  31. data/spec/unit/hanami/helpers/assets_helper/audio_tag_spec.rb +2 -2
  32. data/spec/unit/hanami/helpers/assets_helper/{favicon_link_tag_spec.rb → favicon_tag_spec.rb} +8 -12
  33. data/spec/unit/hanami/helpers/assets_helper/image_tag_spec.rb +1 -1
  34. data/spec/unit/hanami/helpers/assets_helper/javascript_tag_spec.rb +3 -3
  35. data/spec/unit/hanami/helpers/assets_helper/{stylesheet_link_tag_spec.rb → stylesheet_tag_spec.rb} +13 -13
  36. data/spec/unit/hanami/helpers/assets_helper/video_tag_spec.rb +5 -1
  37. data/spec/unit/hanami/version_spec.rb +1 -1
  38. metadata +15 -6
@@ -0,0 +1,84 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "json"
4
+ require "rack/test"
5
+
6
+ RSpec.describe "Web / Welcome view", :app_integration do
7
+ include Rack::Test::Methods
8
+
9
+ let(:app) { Hanami.app }
10
+
11
+ before do
12
+ with_directory(@dir = make_tmp_directory) do
13
+ write "config/app.rb", <<~RUBY
14
+ require "hanami"
15
+
16
+ module TestApp
17
+ class App < Hanami::App
18
+ config.logger.stream = File::NULL
19
+ end
20
+ end
21
+ RUBY
22
+
23
+ write "config/routes.rb", <<~RUBY
24
+ module TestApp
25
+ class Routes < Hanami::Routes
26
+ end
27
+ end
28
+ RUBY
29
+
30
+ before_prepare if respond_to?(:before_prepare)
31
+ require "hanami/prepare"
32
+ end
33
+ end
34
+
35
+ context "no routes defined" do
36
+ it "renders the welcome page" do
37
+ get "/"
38
+
39
+ body = last_response.body.strip
40
+ expect(body).to include "<h1>Welcome to Hanami</h1>"
41
+ expect(body).to include "Hanami version: #{Hanami::VERSION}"
42
+ expect(body).to include "Ruby version: #{RUBY_DESCRIPTION}"
43
+
44
+ expect(last_response.status).to eq 200
45
+ end
46
+ end
47
+
48
+ context "routes defined" do
49
+ def before_prepare
50
+ write "config/routes.rb", <<~RUBY
51
+ module TestApp
52
+ class Routes < Hanami::Routes
53
+ root to: -> * { [200, {}, "Hello from a route"] }
54
+ end
55
+ end
56
+ RUBY
57
+ end
58
+
59
+ it "does not render the welcome page" do
60
+ get "/"
61
+
62
+ expect(last_response.body).to eq "Hello from a route"
63
+ expect(last_response.status).to eq 200
64
+ end
65
+ end
66
+
67
+ context "non-development env" do
68
+ def before_prepare
69
+ @hanami_env = ENV["HANAMI_ENV"]
70
+ ENV["HANAMI_ENV"] = "production"
71
+ end
72
+
73
+ after do
74
+ ENV["HANAMI_ENV"] = @hanami_env
75
+ end
76
+
77
+ it "does not render the welcome page" do
78
+ get "/"
79
+
80
+ expect(last_response.body).to eq "Not Found"
81
+ expect(last_response.status).to eq 404
82
+ end
83
+ end
84
+ end
@@ -39,15 +39,14 @@ module RSpec
39
39
 
40
40
  def compile_assets!
41
41
  link_node_modules
42
+ generate_assets_config
42
43
 
43
44
  require "hanami/cli/command"
44
45
  require "hanami/cli/commands/app/command"
45
46
  require "hanami/cli/commands/app/assets/compile"
46
- compiler = Hanami::CLI::Commands::App::Assets::Compile.new(config: Hanami.app.config.assets)
47
+ assets_compile = Hanami::CLI::Commands::App::Assets::Compile.new(config: Hanami.app.config.assets)
47
48
 
48
- with_directory(Hanami.app.root) do
49
- compiler.call
50
- end
49
+ with_directory(Hanami.app.root) { assets_compile.call }
51
50
  end
52
51
 
53
52
  def link_node_modules
@@ -58,6 +57,25 @@ module RSpec
58
57
  FileUtils.ln_s(node_modules_path, root)
59
58
  rescue Errno::EEXIST # rubocop:disable Lint/SuppressedException
60
59
  end
60
+
61
+ def generate_assets_config
62
+ root = Hanami.app.root
63
+
64
+ with_directory(root) do
65
+ write("config/assets.mjs", <<~JS) unless root.join("config", "assets.mjs").exist?
66
+ import * as assets from "hanami-assets";
67
+ await assets.run();
68
+ JS
69
+
70
+ write("package.json", <<~JSON) unless root.join("package.json").exist?
71
+ {
72
+ "scripts": {
73
+ "assets": "node config/assets.mjs"
74
+ }
75
+ }
76
+ JSON
77
+ end
78
+ end
61
79
  end
62
80
  end
63
81
  end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- RSpec.describe Hanami::Helpers::AssetsHelper, "#audio_tag", :app_integration do
3
+ RSpec.describe Hanami::Helpers::AssetsHelper, "#audio", :app_integration do
4
4
  subject(:obj) {
5
5
  helpers = described_class
6
6
  Class.new {
@@ -84,7 +84,7 @@ RSpec.describe Hanami::Helpers::AssetsHelper, "#audio_tag", :app_integration do
84
84
  end
85
85
 
86
86
  xit "renders with sources" do
87
- actual = audio_tag do
87
+ actual = audio do
88
88
  tag.text "Your browser does not support the audio tag"
89
89
  tag.source src: subject.asset_url("song.ogg"), type: "audio/ogg"
90
90
  tag.source src: subject.asset_url("song.wav"), type: "audio/wav"
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- RSpec.describe Hanami::Helpers::AssetsHelper, "#favicon_link_tag", :app_integration do
3
+ RSpec.describe Hanami::Helpers::AssetsHelper, "#favicon", :app_integration do
4
4
  subject(:obj) {
5
5
  helpers = described_class
6
6
  Class.new {
@@ -14,8 +14,8 @@ RSpec.describe Hanami::Helpers::AssetsHelper, "#favicon_link_tag", :app_integrat
14
14
  }.new(context)
15
15
  }
16
16
 
17
- def favicon_link_tag(...)
18
- obj.instance_eval { favicon_link_tag(...) }
17
+ def favicon_tag(...)
18
+ obj.instance_eval { favicon_tag(...) }
19
19
  end
20
20
 
21
21
  let(:root) { make_tmp_directory }
@@ -53,26 +53,22 @@ RSpec.describe Hanami::Helpers::AssetsHelper, "#favicon_link_tag", :app_integrat
53
53
  end
54
54
 
55
55
  it "returns an instance of SafeString" do
56
- actual = favicon_link_tag
56
+ actual = favicon_tag
57
57
  expect(actual).to be_instance_of(::Hanami::View::HTML::SafeString)
58
58
  end
59
59
 
60
- it "is aliased as `favicon`" do
61
- expect(subject.favicon).to eq favicon_link_tag
62
- end
63
-
64
60
  it "renders <link> tag" do
65
- actual = favicon_link_tag.to_s
61
+ actual = favicon_tag.to_s
66
62
  expect(actual).to eq(%(<link href="/assets/favicon.ico" rel="shortcut icon" type="image/x-icon">))
67
63
  end
68
64
 
69
65
  it "renders with HTML attributes" do
70
- actual = favicon_link_tag("favicon.png", rel: "icon", type: "image/png").to_s
66
+ actual = favicon_tag("favicon.png", rel: "icon", type: "image/png").to_s
71
67
  expect(actual).to eq(%(<link href="/assets/favicon.png" rel="icon" type="image/png">))
72
68
  end
73
69
 
74
70
  it "ignores href passed as an option" do
75
- actual = favicon_link_tag("favicon.png", href: "wrong").to_s
71
+ actual = favicon_tag("favicon.png", href: "wrong").to_s
76
72
  expect(actual).to eq(%(<link href="/assets/favicon.png" rel="shortcut icon" type="image/x-icon">))
77
73
  end
78
74
 
@@ -84,7 +80,7 @@ RSpec.describe Hanami::Helpers::AssetsHelper, "#favicon_link_tag", :app_integrat
84
80
  end
85
81
 
86
82
  it "returns absolute url for href attribute" do
87
- actual = favicon_link_tag.to_s
83
+ actual = favicon_tag.to_s
88
84
  expect(actual).to eq(%(<link href="#{base_url}/assets/favicon.ico" rel="shortcut icon" type="image/x-icon">))
89
85
  end
90
86
  end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- RSpec.describe Hanami::Helpers::AssetsHelper, "#image_tag", :app_integration do
3
+ RSpec.describe Hanami::Helpers::AssetsHelper, "#image", :app_integration do
4
4
  subject(:obj) {
5
5
  helpers = described_class
6
6
  Class.new {
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- RSpec.describe Hanami::Helpers::AssetsHelper, "#javascript_tag", :app_integration do
3
+ RSpec.describe Hanami::Helpers::AssetsHelper, "#javascript", :app_integration do
4
4
  subject(:obj) {
5
5
  helpers = described_class
6
6
  Class.new {
@@ -69,8 +69,8 @@ RSpec.describe Hanami::Helpers::AssetsHelper, "#javascript_tag", :app_integratio
69
69
  expect(actual).to be_instance_of(::Hanami::View::HTML::SafeString)
70
70
  end
71
71
 
72
- it "is aliased as `js`" do
73
- expect(subject.js("feature-a")).to eq javascript_tag("feature-a")
72
+ it "is aliased as #javascript_tag" do
73
+ expect(subject.javascript_tag("feature-a")).to eq javascript_tag("feature-a")
74
74
  end
75
75
 
76
76
  it "renders <script> tag" do
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- RSpec.describe Hanami::Helpers::AssetsHelper, "#stylesheet_link_tag", :app_integration do
3
+ RSpec.describe Hanami::Helpers::AssetsHelper, "#stylesheet", :app_integration do
4
4
  subject(:obj) {
5
5
  helpers = described_class
6
6
  Class.new {
@@ -14,8 +14,8 @@ RSpec.describe Hanami::Helpers::AssetsHelper, "#stylesheet_link_tag", :app_integ
14
14
  }.new(context)
15
15
  }
16
16
 
17
- def stylesheet_link_tag(...)
18
- subject.stylesheet_link_tag(...)
17
+ def stylesheet_tag(...)
18
+ subject.stylesheet_tag(...)
19
19
  end
20
20
 
21
21
  let(:context) { TestApp::Views::Context.new }
@@ -65,36 +65,36 @@ RSpec.describe Hanami::Helpers::AssetsHelper, "#stylesheet_link_tag", :app_integ
65
65
  end
66
66
 
67
67
  it "returns an instance of SafeString" do
68
- actual = stylesheet_link_tag("main")
68
+ actual = stylesheet_tag("main")
69
69
  expect(actual).to be_instance_of(::Hanami::View::HTML::SafeString)
70
70
  end
71
71
 
72
- it "is aliased as `css`" do
73
- expect(subject.css("main")).to eq stylesheet_link_tag("main")
72
+ it "is aliased as #stylesheet_tag" do
73
+ expect(subject.stylesheet_tag("main")).to eq stylesheet_tag("main")
74
74
  end
75
75
 
76
76
  it "renders <link> tag" do
77
- actual = stylesheet_link_tag("main")
77
+ actual = stylesheet_tag("main")
78
78
  expect(actual).to eq(%(<link href="/assets/main.css" type="text/css" rel="stylesheet">))
79
79
  end
80
80
 
81
81
  xit "renders <link> tag without appending ext after query string" do
82
- actual = stylesheet_link_tag("fonts?font=Helvetica")
82
+ actual = stylesheet_tag("fonts?font=Helvetica")
83
83
  expect(actual).to eq(%(<link href="/assets/fonts?font=Helvetica" type="text/css" rel="stylesheet">))
84
84
  end
85
85
 
86
86
  it "renders <link> tag with an integrity attribute" do
87
- actual = stylesheet_link_tag("main", integrity: "sha384-oqVuAfXRKap7fdgcCY5uykM6+R9GqQ8K/uxy9rx7HNQlGYl1kPzQho1wx4JwY8wC")
87
+ actual = stylesheet_tag("main", integrity: "sha384-oqVuAfXRKap7fdgcCY5uykM6+R9GqQ8K/uxy9rx7HNQlGYl1kPzQho1wx4JwY8wC")
88
88
  expect(actual).to eq(%(<link href="/assets/main.css" type="text/css" rel="stylesheet" integrity="sha384-oqVuAfXRKap7fdgcCY5uykM6+R9GqQ8K/uxy9rx7HNQlGYl1kPzQho1wx4JwY8wC" crossorigin="anonymous">))
89
89
  end
90
90
 
91
91
  it "renders <link> tag with a crossorigin attribute" do
92
- actual = stylesheet_link_tag("main", integrity: "sha384-oqVuAfXRKap7fdgcCY5uykM6+R9GqQ8K/uxy9rx7HNQlGYl1kPzQho1wx4JwY8wC", crossorigin: "use-credentials")
92
+ actual = stylesheet_tag("main", integrity: "sha384-oqVuAfXRKap7fdgcCY5uykM6+R9GqQ8K/uxy9rx7HNQlGYl1kPzQho1wx4JwY8wC", crossorigin: "use-credentials")
93
93
  expect(actual).to eq(%(<link href="/assets/main.css" type="text/css" rel="stylesheet" integrity="sha384-oqVuAfXRKap7fdgcCY5uykM6+R9GqQ8K/uxy9rx7HNQlGYl1kPzQho1wx4JwY8wC" crossorigin="use-credentials">))
94
94
  end
95
95
 
96
96
  it "ignores href passed as an option" do
97
- actual = stylesheet_link_tag("main", href: "wrong")
97
+ actual = stylesheet_tag("main", href: "wrong")
98
98
  expect(actual).to eq(%(<link href="/assets/main.css" type="text/css" rel="stylesheet">))
99
99
  end
100
100
 
@@ -106,7 +106,7 @@ RSpec.describe Hanami::Helpers::AssetsHelper, "#stylesheet_link_tag", :app_integ
106
106
  before { compile_assets! }
107
107
 
108
108
  it "includes subresource_integrity and crossorigin attributes" do
109
- actual = stylesheet_link_tag("app")
109
+ actual = stylesheet_tag("app")
110
110
  expect(actual).to match(%r{<link href="/assets/app-[A-Z0-9]{8}.css" type="text/css" rel="stylesheet" integrity="sha384-[A-Za-z0-9+/]{64}" crossorigin="anonymous">})
111
111
  end
112
112
  end
@@ -119,7 +119,7 @@ RSpec.describe Hanami::Helpers::AssetsHelper, "#stylesheet_link_tag", :app_integ
119
119
  end
120
120
 
121
121
  it "returns absolute url for href attribute" do
122
- actual = stylesheet_link_tag("main")
122
+ actual = stylesheet_tag("main")
123
123
  expect(actual).to eq(%(<link href="#{base_url}/assets/main.css" type="text/css" rel="stylesheet">))
124
124
  end
125
125
  end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- RSpec.describe Hanami::Helpers::AssetsHelper, "#video_tag", :app_integration do
3
+ RSpec.describe Hanami::Helpers::AssetsHelper, "#video", :app_integration do
4
4
  subject(:obj) {
5
5
  helpers = described_class
6
6
  Class.new {
@@ -62,6 +62,10 @@ RSpec.describe Hanami::Helpers::AssetsHelper, "#video_tag", :app_integration do
62
62
  expect(actual).to eq(%(<video src="/assets/movie.mp4"></video>))
63
63
  end
64
64
 
65
+ it "is aliased as #video_tag" do
66
+ expect(video_tag("movie.mp4")).to eq(subject.video_tag("movie.mp4"))
67
+ end
68
+
65
69
  it "renders with html attributes" do
66
70
  actual = video_tag("movie.mp4", autoplay: true, controls: true).to_s
67
71
  expect(actual).to eq(%(<video autoplay="autoplay" controls="controls" src="/assets/movie.mp4"></video>))
@@ -2,6 +2,6 @@
2
2
 
3
3
  RSpec.describe "Hanami::VERSION" do
4
4
  it "returns current version" do
5
- expect(Hanami::VERSION).to eq("2.1.0.beta2")
5
+ expect(Hanami::VERSION).to eq("2.1.0.rc1")
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hanami
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.0.beta2
4
+ version: 2.1.0.rc1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Luca Guidi
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-10-04 00:00:00.000000000 Z
11
+ date: 2023-11-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -279,6 +279,7 @@ files:
279
279
  - lib/hanami/extensions/view/scope.rb
280
280
  - lib/hanami/extensions/view/slice_configured_context.rb
281
281
  - lib/hanami/extensions/view/slice_configured_helpers.rb
282
+ - lib/hanami/extensions/view/slice_configured_part.rb
282
283
  - lib/hanami/extensions/view/slice_configured_view.rb
283
284
  - lib/hanami/extensions/view/standard_helpers.rb
284
285
  - lib/hanami/helpers/assets_helper.rb
@@ -311,6 +312,8 @@ files:
311
312
  - lib/hanami/slice_registrar.rb
312
313
  - lib/hanami/version.rb
313
314
  - lib/hanami/web/rack_logger.rb
315
+ - lib/hanami/web/welcome.html.erb
316
+ - lib/hanami/web/welcome.rb
314
317
  - spec/integration/action/cookies_spec.rb
315
318
  - spec/integration/action/csrf_protection_spec.rb
316
319
  - spec/integration/action/format_config_spec.rb
@@ -341,6 +344,7 @@ files:
341
344
  - spec/integration/logging/notifications_spec.rb
342
345
  - spec/integration/logging/request_logging_spec.rb
343
346
  - spec/integration/rack_app/body_parser_spec.rb
347
+ - spec/integration/rack_app/method_override_spec.rb
344
348
  - spec/integration/rack_app/middleware_spec.rb
345
349
  - spec/integration/rack_app/non_booted_rack_app_spec.rb
346
350
  - spec/integration/rack_app/rack_app_spec.rb
@@ -376,10 +380,12 @@ files:
376
380
  - spec/integration/view/helpers/scope_helpers_spec.rb
377
381
  - spec/integration/view/helpers/user_defined_helpers/part_helpers_spec.rb
378
382
  - spec/integration/view/helpers/user_defined_helpers/scope_helpers_spec.rb
383
+ - spec/integration/view/parts/default_rendering_spec.rb
379
384
  - spec/integration/view/slice_configuration_spec.rb
380
385
  - spec/integration/view/views_spec.rb
381
386
  - spec/integration/web/render_detailed_errors_spec.rb
382
387
  - spec/integration/web/render_errors_spec.rb
388
+ - spec/integration/web/welcome_view_spec.rb
383
389
  - spec/spec_helper.rb
384
390
  - spec/support/app_integration.rb
385
391
  - spec/support/coverage.rb
@@ -407,10 +413,10 @@ files:
407
413
  - spec/unit/hanami/extensions/view/context_spec.rb
408
414
  - spec/unit/hanami/helpers/assets_helper/asset_url_spec.rb
409
415
  - spec/unit/hanami/helpers/assets_helper/audio_tag_spec.rb
410
- - spec/unit/hanami/helpers/assets_helper/favicon_link_tag_spec.rb
416
+ - spec/unit/hanami/helpers/assets_helper/favicon_tag_spec.rb
411
417
  - spec/unit/hanami/helpers/assets_helper/image_tag_spec.rb
412
418
  - spec/unit/hanami/helpers/assets_helper/javascript_tag_spec.rb
413
- - spec/unit/hanami/helpers/assets_helper/stylesheet_link_tag_spec.rb
419
+ - spec/unit/hanami/helpers/assets_helper/stylesheet_tag_spec.rb
414
420
  - spec/unit/hanami/helpers/assets_helper/video_tag_spec.rb
415
421
  - spec/unit/hanami/helpers/form_helper_spec.rb
416
422
  - spec/unit/hanami/port_spec.rb
@@ -479,6 +485,7 @@ test_files:
479
485
  - spec/integration/logging/notifications_spec.rb
480
486
  - spec/integration/logging/request_logging_spec.rb
481
487
  - spec/integration/rack_app/body_parser_spec.rb
488
+ - spec/integration/rack_app/method_override_spec.rb
482
489
  - spec/integration/rack_app/middleware_spec.rb
483
490
  - spec/integration/rack_app/non_booted_rack_app_spec.rb
484
491
  - spec/integration/rack_app/rack_app_spec.rb
@@ -514,10 +521,12 @@ test_files:
514
521
  - spec/integration/view/helpers/scope_helpers_spec.rb
515
522
  - spec/integration/view/helpers/user_defined_helpers/part_helpers_spec.rb
516
523
  - spec/integration/view/helpers/user_defined_helpers/scope_helpers_spec.rb
524
+ - spec/integration/view/parts/default_rendering_spec.rb
517
525
  - spec/integration/view/slice_configuration_spec.rb
518
526
  - spec/integration/view/views_spec.rb
519
527
  - spec/integration/web/render_detailed_errors_spec.rb
520
528
  - spec/integration/web/render_errors_spec.rb
529
+ - spec/integration/web/welcome_view_spec.rb
521
530
  - spec/spec_helper.rb
522
531
  - spec/support/app_integration.rb
523
532
  - spec/support/coverage.rb
@@ -545,10 +554,10 @@ test_files:
545
554
  - spec/unit/hanami/extensions/view/context_spec.rb
546
555
  - spec/unit/hanami/helpers/assets_helper/asset_url_spec.rb
547
556
  - spec/unit/hanami/helpers/assets_helper/audio_tag_spec.rb
548
- - spec/unit/hanami/helpers/assets_helper/favicon_link_tag_spec.rb
557
+ - spec/unit/hanami/helpers/assets_helper/favicon_tag_spec.rb
549
558
  - spec/unit/hanami/helpers/assets_helper/image_tag_spec.rb
550
559
  - spec/unit/hanami/helpers/assets_helper/javascript_tag_spec.rb
551
- - spec/unit/hanami/helpers/assets_helper/stylesheet_link_tag_spec.rb
560
+ - spec/unit/hanami/helpers/assets_helper/stylesheet_tag_spec.rb
552
561
  - spec/unit/hanami/helpers/assets_helper/video_tag_spec.rb
553
562
  - spec/unit/hanami/helpers/form_helper_spec.rb
554
563
  - spec/unit/hanami/port_spec.rb