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.
- checksums.yaml +4 -4
- data/Gemfile.lock +160 -116
- data/Gemfile.lock~ +267 -0
- data/README.md +26 -0
- data/app/assets/javascripts/futurism.min.js.map +1 -1
- data/app/assets/javascripts/futurism.umd.min.js.map +1 -1
- data/futurism.gemspec +0 -3
- data/futurism.gemspec~ +1 -4
- data/lib/futurism/engine.rb +4 -0
- data/lib/futurism/helpers.rb +6 -6
- data/lib/futurism/message_verifier.rb +2 -2
- data/lib/futurism/options_transformer.rb +1 -1
- data/lib/futurism/resolver/controller/instrumentation.rb +33 -0
- data/lib/futurism/resolver/controller/renderer.rb +6 -2
- data/lib/futurism/resolver/resources.rb +3 -3
- data/lib/futurism/version.rb +1 -1
- data/lib/futurism.rb +11 -3
- data/package.json +1 -1
- data/package.json~ +2 -2
- data/yarn.lock +61 -21
- metadata +6 -94
- data/test/cable/channel_test.rb +0 -319
- data/test/dummy/app/channels/application_cable/channel.rb +0 -4
- data/test/dummy/app/channels/application_cable/connection.rb +0 -4
- data/test/dummy/app/controllers/application_controller.rb +0 -2
- data/test/dummy/app/controllers/home_controller.rb +0 -6
- data/test/dummy/app/controllers/posts_controller.rb +0 -59
- data/test/dummy/app/helpers/application_helper.rb +0 -2
- data/test/dummy/app/helpers/posts_helper.rb +0 -2
- data/test/dummy/app/jobs/application_job.rb +0 -7
- data/test/dummy/app/models/action_item.rb +0 -2
- data/test/dummy/app/models/application_record.rb +0 -3
- data/test/dummy/app/models/post.rb +0 -2
- data/test/dummy/config/application.rb +0 -29
- data/test/dummy/config/boot.rb +0 -5
- data/test/dummy/config/environment.rb +0 -5
- data/test/dummy/config/environments/development.rb +0 -40
- data/test/dummy/config/environments/production.rb +0 -94
- data/test/dummy/config/environments/test.rb +0 -39
- data/test/dummy/config/initializers/application_controller_renderer.rb +0 -8
- data/test/dummy/config/initializers/backtrace_silencers.rb +0 -7
- data/test/dummy/config/initializers/content_security_policy.rb +0 -28
- data/test/dummy/config/initializers/cookies_serializer.rb +0 -5
- data/test/dummy/config/initializers/filter_parameter_logging.rb +0 -4
- data/test/dummy/config/initializers/inflections.rb +0 -16
- data/test/dummy/config/initializers/mime_types.rb +0 -4
- data/test/dummy/config/initializers/wrap_parameters.rb +0 -9
- data/test/dummy/config/puma.rb +0 -38
- data/test/dummy/config/routes.rb +0 -12
- data/test/dummy/config/spring.rb +0 -6
- data/test/dummy/db/migrate/20200711122838_create_posts.rb +0 -9
- data/test/dummy/db/migrate/2021042923813_create_action_items.rb +0 -9
- data/test/dummy/db/schema.rb +0 -27
- data/test/futurism_test.rb +0 -28
- data/test/helper/helper_test.rb +0 -206
- data/test/integration/navigation_test.rb +0 -7
- data/test/resolver/controller/renderer_test.rb +0 -120
- data/test/resolver/controller_test.rb +0 -26
- 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)
|