futurism 1.2.0 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +160 -116
  3. data/Gemfile.lock~ +267 -0
  4. data/README.md +26 -0
  5. data/app/assets/javascripts/futurism.min.js.map +1 -1
  6. data/app/assets/javascripts/futurism.umd.min.js.map +1 -1
  7. data/futurism.gemspec +0 -3
  8. data/futurism.gemspec~ +1 -4
  9. data/lib/futurism/engine.rb +4 -0
  10. data/lib/futurism/helpers.rb +6 -6
  11. data/lib/futurism/message_verifier.rb +2 -2
  12. data/lib/futurism/options_transformer.rb +1 -1
  13. data/lib/futurism/resolver/controller/instrumentation.rb +33 -0
  14. data/lib/futurism/resolver/controller/renderer.rb +6 -2
  15. data/lib/futurism/resolver/resources.rb +3 -3
  16. data/lib/futurism/version.rb +1 -1
  17. data/lib/futurism.rb +11 -3
  18. data/package.json +1 -1
  19. data/package.json~ +2 -2
  20. data/yarn.lock +61 -21
  21. metadata +6 -94
  22. data/test/cable/channel_test.rb +0 -319
  23. data/test/dummy/app/channels/application_cable/channel.rb +0 -4
  24. data/test/dummy/app/channels/application_cable/connection.rb +0 -4
  25. data/test/dummy/app/controllers/application_controller.rb +0 -2
  26. data/test/dummy/app/controllers/home_controller.rb +0 -6
  27. data/test/dummy/app/controllers/posts_controller.rb +0 -59
  28. data/test/dummy/app/helpers/application_helper.rb +0 -2
  29. data/test/dummy/app/helpers/posts_helper.rb +0 -2
  30. data/test/dummy/app/jobs/application_job.rb +0 -7
  31. data/test/dummy/app/models/action_item.rb +0 -2
  32. data/test/dummy/app/models/application_record.rb +0 -3
  33. data/test/dummy/app/models/post.rb +0 -2
  34. data/test/dummy/config/application.rb +0 -29
  35. data/test/dummy/config/boot.rb +0 -5
  36. data/test/dummy/config/environment.rb +0 -5
  37. data/test/dummy/config/environments/development.rb +0 -40
  38. data/test/dummy/config/environments/production.rb +0 -94
  39. data/test/dummy/config/environments/test.rb +0 -39
  40. data/test/dummy/config/initializers/application_controller_renderer.rb +0 -8
  41. data/test/dummy/config/initializers/backtrace_silencers.rb +0 -7
  42. data/test/dummy/config/initializers/content_security_policy.rb +0 -28
  43. data/test/dummy/config/initializers/cookies_serializer.rb +0 -5
  44. data/test/dummy/config/initializers/filter_parameter_logging.rb +0 -4
  45. data/test/dummy/config/initializers/inflections.rb +0 -16
  46. data/test/dummy/config/initializers/mime_types.rb +0 -4
  47. data/test/dummy/config/initializers/wrap_parameters.rb +0 -9
  48. data/test/dummy/config/puma.rb +0 -38
  49. data/test/dummy/config/routes.rb +0 -12
  50. data/test/dummy/config/spring.rb +0 -6
  51. data/test/dummy/db/migrate/20200711122838_create_posts.rb +0 -9
  52. data/test/dummy/db/migrate/2021042923813_create_action_items.rb +0 -9
  53. data/test/dummy/db/schema.rb +0 -27
  54. data/test/futurism_test.rb +0 -28
  55. data/test/helper/helper_test.rb +0 -206
  56. data/test/integration/navigation_test.rb +0 -7
  57. data/test/resolver/controller/renderer_test.rb +0 -120
  58. data/test/resolver/controller_test.rb +0 -26
  59. data/test/test_helper.rb +0 -14
@@ -1,120 +0,0 @@
1
- require "test_helper"
2
-
3
- class DummyController < ActionController::Base
4
- def name_helper
5
- "FUTURISM".freeze
6
- end
7
- helper_method :name_helper
8
-
9
- def controller_and_action_helper
10
- [params["controller"], params["action"]].join(":")
11
- end
12
- helper_method :controller_and_action_helper
13
-
14
- def name_from_params_helper
15
- params["name"]
16
- end
17
- helper_method :name_from_params_helper
18
- end
19
-
20
- def dummy_connection
21
- connection = Minitest::Mock.new
22
- connection.expect(:env, {"HTTP_VAR" => "HTTP_VAR_VALUE"})
23
- connection
24
- end
25
-
26
- class Futurism::Resolver::Controller::RendererTest < ActiveSupport::TestCase
27
- include Rails.application.routes.url_helpers
28
-
29
- test ".for controller configures renderer" do
30
- renderer = Futurism::Resolver::Controller::Renderer.for(controller: ApplicationController,
31
- connection: dummy_connection,
32
- url: "http://www.example.org?someParam=1234",
33
- params: {"SOME" => "SOME_VALUE"})
34
- assert_equal renderer.controller, ApplicationController
35
-
36
- assert_equal renderer.render(inline: "<%= request.env['HTTP_VAR'] %>"), "HTTP_VAR_VALUE"
37
- assert_equal renderer.render(inline: "<%= params['someParam'] %>"), "1234"
38
- assert_equal renderer.render(inline: "<%= params['SOME'] %>"), "SOME_VALUE"
39
- end
40
-
41
- test ".for controller configures renderer using the passed in controller" do
42
- renderer = Futurism::Resolver::Controller::Renderer.for(controller: DummyController,
43
- connection: dummy_connection,
44
- url: "http://www.example.org?someParam=1234",
45
- params: {"SOME" => "SOME_VALUE"})
46
- assert_equal renderer.controller, DummyController
47
-
48
- assert_equal renderer.render(inline: "<%= request.env['HTTP_VAR'] %>"), "HTTP_VAR_VALUE"
49
- assert_equal renderer.render(inline: "<%= params['someParam'] %>"), "1234"
50
- assert_equal renderer.render(inline: "<%= params['SOME'] %>"), "SOME_VALUE"
51
- end
52
-
53
- test "renderer.render resolves helper methods" do
54
- renderer = Futurism::Resolver::Controller::Renderer.for(controller: DummyController,
55
- connection: dummy_connection,
56
- url: "http://www.example.org?name=the%20future",
57
- params: {})
58
-
59
- rendered_html = renderer.render(inline: "Hi <%= name_helper %>")
60
-
61
- assert_equal rendered_html, "Hi FUTURISM"
62
- end
63
-
64
- test "renderer.render resolves helper methods that rely on params from controller" do
65
- renderer = Futurism::Resolver::Controller::Renderer.for(controller: DummyController,
66
- connection: dummy_connection,
67
- url: "http://www.example.org?name=the%20future!",
68
- params: {})
69
-
70
- rendered_html = renderer.render(inline: "Hi <%= controller_and_action_helper %>")
71
-
72
- assert_equal rendered_html, "Hi home:index"
73
- end
74
-
75
- test "renderer.render resolves helper methods that rely on params from url" do
76
- renderer = Futurism::Resolver::Controller::Renderer.for(controller: DummyController,
77
- connection: dummy_connection,
78
- url: "http://www.example.org?name=the%20future!",
79
- params: {})
80
- rendered_html = renderer.render(inline: "Hi <%= name_from_params_helper %>")
81
-
82
- assert_equal rendered_html, "Hi the future!"
83
- end
84
-
85
- test "renderer.render renders partials that contain a link_to helper" do
86
- post = Post.create(title: "Lorem")
87
-
88
- renderer = Futurism::Resolver::Controller::Renderer.for(controller: ApplicationController,
89
- connection: dummy_connection,
90
- url: "http://www.example.org",
91
- params: {})
92
-
93
- rendered_html = renderer.render(inline: "<%= link_to post_path(id: #{post.id}) %>")
94
-
95
- assert_equal rendered_html, "<a href=\"/\">/posts/1</a>"
96
- end
97
-
98
- ["get", "put", "patch", "post", "delete"].each do |http_method|
99
- test "renderer.render handles an #{http_method} route" do
100
- renderer = Futurism::Resolver::Controller::Renderer.for(controller: ApplicationController,
101
- connection: dummy_connection,
102
- url: "http://example.org/known/#{http_method}",
103
- params: {})
104
-
105
- rendered_html = renderer.render(inline: "<%= request.url %>")
106
- assert_equal rendered_html, "http://example.org/known/#{http_method}"
107
- end
108
- end
109
-
110
- test "renderer.render handles an umatchable url" do
111
- renderer = Futurism::Resolver::Controller::Renderer.for(controller: ApplicationController,
112
- connection: dummy_connection,
113
- url: "http://example.org/unknown/place",
114
- params: {})
115
-
116
- assert_nothing_raised do
117
- renderer.render(inline: "<%= request.url %>")
118
- end
119
- end
120
- end
@@ -1,26 +0,0 @@
1
- require "test_helper"
2
-
3
- class DummyController < ActionController::Base; end
4
-
5
- class Futurism::Resolver::ControllerTest < ActiveSupport::TestCase
6
- test ".from defaults to ApplicationController" do
7
- controller = Futurism::Resolver::Controller.from(signed_string: nil)
8
- assert_equal controller, ApplicationController
9
- end
10
-
11
- test ".from uses Futurism.default_controller" do
12
- Futurism.default_controller = DummyController
13
- controller = Futurism::Resolver::Controller.from(signed_string: nil)
14
-
15
- assert_equal controller, DummyController
16
-
17
- Futurism.default_controller = nil
18
- end
19
-
20
- test ".from lookups up controller via signed_string:" do
21
- signed_controller_string = Futurism::MessageVerifier.message_verifier.generate(DummyController.to_s)
22
- controller = Futurism::Resolver::Controller.from(signed_string: signed_controller_string)
23
-
24
- assert_equal controller, DummyController
25
- end
26
- end
data/test/test_helper.rb DELETED
@@ -1,14 +0,0 @@
1
- # Configure Rails Environment
2
- ENV["RAILS_ENV"] = "test"
3
-
4
- require_relative "../test/dummy/config/environment"
5
- require "rails/test_help"
6
- require "minitest/mock"
7
- require "nokogiri"
8
- require "pry"
9
-
10
- # Filter out the backtrace from minitest while preserving the one from other libraries.
11
- Minitest.backtrace_filter = Minitest::BacktraceFilter.new
12
-
13
- # Turn off logger output as to not have poor test output
14
- Futurism.logger = Logger.new(IO::NULL)