jets-testing 0.1.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 +7 -0
- data/Rakefile +9 -0
- data/lib/jets-testing.rb +3 -0
- data/lib/jets/testing.rb +1 -0
- data/lib/jets/testing/ext/action_dispatch_test_response.rb +24 -0
- data/lib/jets/testing/ext/combustion_bundler_patch.rb +15 -0
- data/lib/jets/testing/ext/n_plus_one_control_isolator.rb +16 -0
- data/lib/jets/testing/helpers/file_fixture_helper.rb +13 -0
- data/lib/jets/testing/helpers/json_response.rb +12 -0
- data/lib/jets/testing/helpers/mailbox_for_helper.rb +36 -0
- data/lib/jets/testing/rails.rb +67 -0
- data/lib/jets/testing/rspec.rb +70 -0
- data/lib/jets/testing/shared_contexts/active_job.rb +14 -0
- data/lib/jets/testing/shared_contexts/csrf.rb +14 -0
- data/lib/jets/testing/shared_contexts/shared_request.rb +10 -0
- metadata +294 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: d1620d720260799aea4037feace5362ddd337492bc3be68cf44700ccd7e9a5fe
|
4
|
+
data.tar.gz: c20c2b0d5a81f13fe92c0bf12551335fb2e1238c688a028dd6c6782e213c4bd3
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 22c7dd5c728ec1ef799ceeebc3fd80728ca8ef92148ff2ddc101c5e2d2d9b4498857550b4a28cfa1113c5a66ebc12f54da621aad6781ba21d3334f8e1e0ee3d9
|
7
|
+
data.tar.gz: d4274e6a9da31b07bf3437c79b7f257f562948430e0cdd42468d126831c323ac9b2316d3e98b264b9e78bf2a7cc2d0e3f7e3fd351193ba7ecbb774302bea900b
|
data/Rakefile
ADDED
data/lib/jets-testing.rb
ADDED
data/lib/jets/testing.rb
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
# frozen_string_literal: true
|
@@ -0,0 +1,24 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module ActionDispatch
|
4
|
+
# Make response less verbose (for RSpec failure messages).
|
5
|
+
#
|
6
|
+
# Before:
|
7
|
+
# expected `#<ActionDispatch::TestResponse:0x000055c409b14a40
|
8
|
+
# @mon_owner=nil, @mon_count=0,
|
9
|
+
# @mon_mutex=#<Thread::...ext/html", @hash=459027022919608650>,
|
10
|
+
# @charset="utf-8", @cache_control={:no_cache=>true},
|
11
|
+
# @etag=nil>.success?` to return true, got false
|
12
|
+
#
|
13
|
+
# After:
|
14
|
+
# expected `TestResponse<status: 302, content-type: text/html,
|
15
|
+
# body: "<html><body>You are being redirected</a>..."
|
16
|
+
# >.success?` to return true, got false
|
17
|
+
class TestResponse
|
18
|
+
def inspect
|
19
|
+
"TestResponse<status: #{status}, " \
|
20
|
+
"content-type: #{content_type}, " \
|
21
|
+
"body: \"#{body.truncate(200)}\">"
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Hijack Bundler.require from Combustion.initialize! to load engine-specific group
|
4
|
+
Combustion.singleton_class.prepend(Module.new do
|
5
|
+
def initialize!(*args, bundler_groups: nil, **kwargs)
|
6
|
+
if bundler_groups
|
7
|
+
original_require = Bundler.method(:require)
|
8
|
+
Bundler.define_singleton_method(:require) { |*| original_require.call(*bundler_groups) }
|
9
|
+
end
|
10
|
+
|
11
|
+
super
|
12
|
+
ensure
|
13
|
+
Bundler.define_singleton_method(:require, original_require) if bundler_groups
|
14
|
+
end
|
15
|
+
end)
|
@@ -0,0 +1,16 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Disable Isolator in n_plus_one_control examples
|
4
|
+
#
|
5
|
+
# Rails 5 triggers `after_commit` callbacks depending on the properties of the outer transaction:
|
6
|
+
# if it has `joinable: false` then callbacks are triggered.
|
7
|
+
# `n_plus_one_control` also uses a non-joinable transaction, but it's not counted as _safe_ by Isolator,
|
8
|
+
# 'cause it opens after the test example transaction (`transactional_tests` feature).
|
9
|
+
#
|
10
|
+
# Links:
|
11
|
+
# - https://github.com/palkan/n_plus_one_control/blob/d13567e60c18bb2e85e606abee4c096383623992/lib/n_plus_one_control/executor.rb#L59
|
12
|
+
NPlusOneControl::Executor.singleton_class.prepend(Module.new do
|
13
|
+
def with_transaction(*)
|
14
|
+
Isolator.disable { super }
|
15
|
+
end
|
16
|
+
end)
|
@@ -0,0 +1,13 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Jets::Testing
|
4
|
+
module FileFixtureHelper
|
5
|
+
def fixture_file_path(*paths)
|
6
|
+
File.join(RSpec.configuration.file_fixture_path, *paths)
|
7
|
+
end
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
RSpec.configure do |config|
|
12
|
+
config.include Jets::Testing::FileFixtureHelper
|
13
|
+
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Jets::Testing
|
4
|
+
module MailboxForHelper
|
5
|
+
class Mailbox
|
6
|
+
attr_reader :email
|
7
|
+
|
8
|
+
delegate :count, :size, :last, to: :deliveries
|
9
|
+
|
10
|
+
def initialize(email)
|
11
|
+
@email = email
|
12
|
+
end
|
13
|
+
|
14
|
+
def deliveries
|
15
|
+
ActionMailer::Base.deliveries.select do |mail|
|
16
|
+
mail.destinations.include?(email)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
def mails_for(user_or_email)
|
22
|
+
if ActionMailer::Base.delivery_method != :test
|
23
|
+
raise "You can only use `mailbox` helper when" \
|
24
|
+
"ActionMailer::Base.delivery_method is `:test`"
|
25
|
+
end
|
26
|
+
|
27
|
+
email = user_or_email.respond_to?(:email) ? user_or_email.email : user_or_email
|
28
|
+
|
29
|
+
Mailbox.new(email)
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
RSpec.configure do |config|
|
35
|
+
config.include Jets::Testing::MailboxForHelper
|
36
|
+
end
|
@@ -0,0 +1,67 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "jets-factory"
|
4
|
+
|
5
|
+
require "rspec/rails"
|
6
|
+
|
7
|
+
require "isolator"
|
8
|
+
require "n_plus_one_control/rspec"
|
9
|
+
require "shoulda-matchers"
|
10
|
+
require "timecop"
|
11
|
+
require "with_model"
|
12
|
+
|
13
|
+
require "jets/testing/ext/action_dispatch_test_response"
|
14
|
+
require "jets/testing/ext/n_plus_one_control_isolator"
|
15
|
+
|
16
|
+
require "test_prof/recipes/rspec/before_all"
|
17
|
+
require "test_prof/recipes/rspec/let_it_be"
|
18
|
+
require "test_prof/recipes/logging"
|
19
|
+
require "test_prof/recipes/rspec/any_fixture"
|
20
|
+
require "test_prof/ext/active_record_refind"
|
21
|
+
require "test_prof/any_fixture/dsl"
|
22
|
+
require "test_prof/recipes/rspec/factory_default"
|
23
|
+
require "test_prof/recipes/rspec/sample"
|
24
|
+
|
25
|
+
Dir[File.join(__dir__, "helpers/**/*.rb")].each { |file| require file }
|
26
|
+
Dir[File.join(__dir__, "shared_contexts/**/*.rb")].each { |file| require file }
|
27
|
+
|
28
|
+
Shoulda::Matchers.configure do |config|
|
29
|
+
config.integrate do |with|
|
30
|
+
with.test_framework :rspec
|
31
|
+
with.library :rails
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
NPlusOneControl.verbose = true
|
36
|
+
|
37
|
+
root = defined?(ENGINE_ROOT) ? Pathname.new(ENGINE_ROOT) : Rails.root
|
38
|
+
|
39
|
+
Dir[root.join("spec/support/**/*.rb")].each { |file| require file }
|
40
|
+
|
41
|
+
RSpec.configure do |config|
|
42
|
+
config.fixture_path = root.join("spec/fixtures")
|
43
|
+
|
44
|
+
config.include ActionDispatch::TestProcess
|
45
|
+
config.include FactoryBot::Syntax::Methods
|
46
|
+
config.include ActiveSupport::Testing::TimeHelpers
|
47
|
+
config.extend WithModel
|
48
|
+
|
49
|
+
config.use_transactional_fixtures = true
|
50
|
+
|
51
|
+
config.infer_spec_type_from_file_location!
|
52
|
+
|
53
|
+
unless ENV["FULLTRACE"]
|
54
|
+
config.filter_rails_from_backtrace!
|
55
|
+
config.filter_gems_from_backtrace "railties", "rack", "rack-test"
|
56
|
+
end
|
57
|
+
|
58
|
+
config.after(:each) do
|
59
|
+
Timecop.return
|
60
|
+
travel_back
|
61
|
+
|
62
|
+
if defined?(ActiveJob) && ActiveJob::QueueAdapters::TestAdapter === ActiveJob::Base.queue_adapter
|
63
|
+
ActiveJob::Base.queue_adapter.enqueued_jobs.clear
|
64
|
+
ActiveJob::Base.queue_adapter.performed_jobs.clear
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
@@ -0,0 +1,70 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "rspec"
|
4
|
+
require "rspec/instafail"
|
5
|
+
require "rspec_junit_formatter"
|
6
|
+
require "rspec/support/spec/shell_out"
|
7
|
+
|
8
|
+
RSpec.configure do |config|
|
9
|
+
include RSpec::Support::ShellOut
|
10
|
+
|
11
|
+
config.expect_with :rspec do |expectations|
|
12
|
+
# This option will default to `true` in RSpec 4. It makes the `description`
|
13
|
+
# and `failure_message` of custom matchers include text for helper methods
|
14
|
+
# defined using `chain`, e.g.:
|
15
|
+
# be_bigger_than(2).and_smaller_than(4).description
|
16
|
+
# # => "be bigger than 2 and smaller than 4"
|
17
|
+
# ...rather than:
|
18
|
+
# # => "be bigger than 2"
|
19
|
+
expectations.include_chain_clauses_in_custom_matcher_descriptions = true
|
20
|
+
end
|
21
|
+
|
22
|
+
config.mock_with :rspec do |mocks|
|
23
|
+
# Prevents you from mocking or stubbing a method that does not exist on
|
24
|
+
# a real object. This is generally recommended, and will default to
|
25
|
+
# `true` in RSpec 4.
|
26
|
+
mocks.verify_partial_doubles = true
|
27
|
+
end
|
28
|
+
|
29
|
+
# This option will default to `:apply_to_host_groups` in RSpec 4 (and will
|
30
|
+
# have no way to turn it off -- the option exists only for backwards
|
31
|
+
# compatibility in RSpec 3). It causes shared context metadata to be
|
32
|
+
# inherited by the metadata hash of host groups and examples, rather than
|
33
|
+
# triggering implicit auto-inclusion in groups with matching metadata.
|
34
|
+
config.shared_context_metadata_behavior = :apply_to_host_groups
|
35
|
+
|
36
|
+
config.define_derived_metadata(file_path: %r{/spec/}) do |metadata|
|
37
|
+
next if metadata.key?(:type)
|
38
|
+
match = metadata[:location].match(%r{/spec/([^/]+)/})
|
39
|
+
next unless match
|
40
|
+
metadata[:type] = match[1].then do |path|
|
41
|
+
next path unless path.respond_to?(:singularize)
|
42
|
+
path.singularize
|
43
|
+
end.to_sym
|
44
|
+
end
|
45
|
+
|
46
|
+
config.filter_run_when_matching :focus
|
47
|
+
config.example_status_persistence_file_path = "tmp/rspec_examples.txt"
|
48
|
+
config.run_all_when_everything_filtered = true
|
49
|
+
|
50
|
+
if config.files_to_run.one?
|
51
|
+
# Use the documentation formatter for detailed output,
|
52
|
+
# unless a formatter has already been configured
|
53
|
+
# (e.g. via a command-line flag).
|
54
|
+
config.default_formatter = "doc"
|
55
|
+
end
|
56
|
+
|
57
|
+
unless ENV["FULLTRACE"]
|
58
|
+
config.filter_gems_from_backtrace "factory_bot"
|
59
|
+
config.filter_gems_from_backtrace "graphql"
|
60
|
+
config.filter_gems_from_backtrace "test-prof"
|
61
|
+
end
|
62
|
+
|
63
|
+
# Always include the spec itself to the backtrace.
|
64
|
+
# That also helps to avoid a full stack printing when
|
65
|
+
# everything have been filtered out.
|
66
|
+
config.backtrace_inclusion_patterns << %r{/spec/}
|
67
|
+
|
68
|
+
config.order = :random
|
69
|
+
Kernel.srand config.seed
|
70
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
shared_context "active_job:perform" do
|
4
|
+
around do |ex|
|
5
|
+
current = ActiveJob::Base.queue_adapter.perform_enqueued_jobs
|
6
|
+
ActiveJob::Base.queue_adapter.perform_enqueued_jobs = true
|
7
|
+
ex.run
|
8
|
+
ActiveJob::Base.queue_adapter.perform_enqueued_jobs = current
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
RSpec.configure do |config|
|
13
|
+
config.include_context "active_job:perform", active_job: :perform
|
14
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
shared_context "csrf:on" do
|
4
|
+
around do |ex|
|
5
|
+
current = ActionController::Base.allow_forgery_protection
|
6
|
+
ActionController::Base.allow_forgery_protection = true
|
7
|
+
ex.run
|
8
|
+
ActionController::Base.allow_forgery_protection = current
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
RSpec.configure do |config|
|
13
|
+
config.include_context "csrf:on", csrf: :on
|
14
|
+
end
|
@@ -0,0 +1,10 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
shared_context "shared:request" do
|
4
|
+
subject { request; response }
|
5
|
+
end
|
6
|
+
|
7
|
+
RSpec.configure do |config|
|
8
|
+
config.include_context "shared:request", type: :request
|
9
|
+
config.include Jets::Testing::JSONResponse, type: :request
|
10
|
+
end
|
metadata
ADDED
@@ -0,0 +1,294 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: jets-testing
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Lauri Jutila
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2020-11-29 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: rails
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '6.0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '6.0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rspec-rails
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 4.0.0
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 4.0.0
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: combustion
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '1.3'
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '1.3'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: isolator
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 0.6.2
|
62
|
+
type: :runtime
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: 0.6.2
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: n_plus_one_control
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: 0.3.1
|
76
|
+
type: :runtime
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: 0.3.1
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: shoulda-matchers
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - "~>"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '4.4'
|
90
|
+
type: :runtime
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - "~>"
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '4.4'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: test-prof
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - "~>"
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: 0.10.1
|
104
|
+
type: :runtime
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - "~>"
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: 0.10.1
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: timecop
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - "~>"
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '0.9'
|
118
|
+
type: :runtime
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - "~>"
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '0.9'
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: with_model
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - "~>"
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '2.1'
|
132
|
+
type: :runtime
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - "~>"
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: '2.1'
|
139
|
+
- !ruby/object:Gem::Dependency
|
140
|
+
name: fuubar
|
141
|
+
requirement: !ruby/object:Gem::Requirement
|
142
|
+
requirements:
|
143
|
+
- - "~>"
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
version: '2.5'
|
146
|
+
type: :runtime
|
147
|
+
prerelease: false
|
148
|
+
version_requirements: !ruby/object:Gem::Requirement
|
149
|
+
requirements:
|
150
|
+
- - "~>"
|
151
|
+
- !ruby/object:Gem::Version
|
152
|
+
version: '2.5'
|
153
|
+
- !ruby/object:Gem::Dependency
|
154
|
+
name: rspec-instafail
|
155
|
+
requirement: !ruby/object:Gem::Requirement
|
156
|
+
requirements:
|
157
|
+
- - "~>"
|
158
|
+
- !ruby/object:Gem::Version
|
159
|
+
version: '1.0'
|
160
|
+
type: :runtime
|
161
|
+
prerelease: false
|
162
|
+
version_requirements: !ruby/object:Gem::Requirement
|
163
|
+
requirements:
|
164
|
+
- - "~>"
|
165
|
+
- !ruby/object:Gem::Version
|
166
|
+
version: '1.0'
|
167
|
+
- !ruby/object:Gem::Dependency
|
168
|
+
name: rspec_junit_formatter
|
169
|
+
requirement: !ruby/object:Gem::Requirement
|
170
|
+
requirements:
|
171
|
+
- - "~>"
|
172
|
+
- !ruby/object:Gem::Version
|
173
|
+
version: '0.4'
|
174
|
+
type: :runtime
|
175
|
+
prerelease: false
|
176
|
+
version_requirements: !ruby/object:Gem::Requirement
|
177
|
+
requirements:
|
178
|
+
- - "~>"
|
179
|
+
- !ruby/object:Gem::Version
|
180
|
+
version: '0.4'
|
181
|
+
- !ruby/object:Gem::Dependency
|
182
|
+
name: jets-factory
|
183
|
+
requirement: !ruby/object:Gem::Requirement
|
184
|
+
requirements:
|
185
|
+
- - "~>"
|
186
|
+
- !ruby/object:Gem::Version
|
187
|
+
version: '0.1'
|
188
|
+
type: :runtime
|
189
|
+
prerelease: false
|
190
|
+
version_requirements: !ruby/object:Gem::Requirement
|
191
|
+
requirements:
|
192
|
+
- - "~>"
|
193
|
+
- !ruby/object:Gem::Version
|
194
|
+
version: '0.1'
|
195
|
+
- !ruby/object:Gem::Dependency
|
196
|
+
name: bundler
|
197
|
+
requirement: !ruby/object:Gem::Requirement
|
198
|
+
requirements:
|
199
|
+
- - "~>"
|
200
|
+
- !ruby/object:Gem::Version
|
201
|
+
version: '2'
|
202
|
+
type: :development
|
203
|
+
prerelease: false
|
204
|
+
version_requirements: !ruby/object:Gem::Requirement
|
205
|
+
requirements:
|
206
|
+
- - "~>"
|
207
|
+
- !ruby/object:Gem::Version
|
208
|
+
version: '2'
|
209
|
+
- !ruby/object:Gem::Dependency
|
210
|
+
name: pry-byebug
|
211
|
+
requirement: !ruby/object:Gem::Requirement
|
212
|
+
requirements:
|
213
|
+
- - "~>"
|
214
|
+
- !ruby/object:Gem::Version
|
215
|
+
version: '3.6'
|
216
|
+
type: :development
|
217
|
+
prerelease: false
|
218
|
+
version_requirements: !ruby/object:Gem::Requirement
|
219
|
+
requirements:
|
220
|
+
- - "~>"
|
221
|
+
- !ruby/object:Gem::Version
|
222
|
+
version: '3.6'
|
223
|
+
- !ruby/object:Gem::Dependency
|
224
|
+
name: rake
|
225
|
+
requirement: !ruby/object:Gem::Requirement
|
226
|
+
requirements:
|
227
|
+
- - "~>"
|
228
|
+
- !ruby/object:Gem::Version
|
229
|
+
version: '13.0'
|
230
|
+
type: :development
|
231
|
+
prerelease: false
|
232
|
+
version_requirements: !ruby/object:Gem::Requirement
|
233
|
+
requirements:
|
234
|
+
- - "~>"
|
235
|
+
- !ruby/object:Gem::Version
|
236
|
+
version: '13.0'
|
237
|
+
- !ruby/object:Gem::Dependency
|
238
|
+
name: jets-rubocop
|
239
|
+
requirement: !ruby/object:Gem::Requirement
|
240
|
+
requirements:
|
241
|
+
- - "~>"
|
242
|
+
- !ruby/object:Gem::Version
|
243
|
+
version: '0.1'
|
244
|
+
type: :development
|
245
|
+
prerelease: false
|
246
|
+
version_requirements: !ruby/object:Gem::Requirement
|
247
|
+
requirements:
|
248
|
+
- - "~>"
|
249
|
+
- !ruby/object:Gem::Version
|
250
|
+
version: '0.1'
|
251
|
+
description: Common configuration for RSpec and a dummy application
|
252
|
+
email: ruby@laurijutila.com
|
253
|
+
executables: []
|
254
|
+
extensions: []
|
255
|
+
extra_rdoc_files: []
|
256
|
+
files:
|
257
|
+
- Rakefile
|
258
|
+
- lib/jets-testing.rb
|
259
|
+
- lib/jets/testing.rb
|
260
|
+
- lib/jets/testing/ext/action_dispatch_test_response.rb
|
261
|
+
- lib/jets/testing/ext/combustion_bundler_patch.rb
|
262
|
+
- lib/jets/testing/ext/n_plus_one_control_isolator.rb
|
263
|
+
- lib/jets/testing/helpers/file_fixture_helper.rb
|
264
|
+
- lib/jets/testing/helpers/json_response.rb
|
265
|
+
- lib/jets/testing/helpers/mailbox_for_helper.rb
|
266
|
+
- lib/jets/testing/rails.rb
|
267
|
+
- lib/jets/testing/rspec.rb
|
268
|
+
- lib/jets/testing/shared_contexts/active_job.rb
|
269
|
+
- lib/jets/testing/shared_contexts/csrf.rb
|
270
|
+
- lib/jets/testing/shared_contexts/shared_request.rb
|
271
|
+
homepage: https://github.com/getjets/jets-testing
|
272
|
+
licenses:
|
273
|
+
- MIT
|
274
|
+
metadata: {}
|
275
|
+
post_install_message:
|
276
|
+
rdoc_options: []
|
277
|
+
require_paths:
|
278
|
+
- lib
|
279
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
280
|
+
requirements:
|
281
|
+
- - ">="
|
282
|
+
- !ruby/object:Gem::Version
|
283
|
+
version: '0'
|
284
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
285
|
+
requirements:
|
286
|
+
- - ">="
|
287
|
+
- !ruby/object:Gem::Version
|
288
|
+
version: '0'
|
289
|
+
requirements: []
|
290
|
+
rubygems_version: 3.1.2
|
291
|
+
signing_key:
|
292
|
+
specification_version: 4
|
293
|
+
summary: Common configuration for RSpec and a dummy application
|
294
|
+
test_files: []
|