rspeckled 1.4.0 → 2.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +3 -1
- data.tar.gz.sig +0 -0
- data/LICENSE.txt +1 -1
- data/lib/rspeckled/plugins.rb +1 -0
- data/lib/rspeckled/plugins/hooks/authentication.rb +0 -3
- data/lib/rspeckled/plugins/hooks/database_cleaner.rb +1 -9
- data/lib/rspeckled/plugins/hooks/foreign_keys.rb +25 -27
- data/lib/rspeckled/plugins/hooks/rails.rb +50 -0
- data/lib/rspeckled/spec_helpers/active_record_connection_setup.rb +0 -3
- data/lib/rspeckled/support.rb +2 -0
- data/lib/rspeckled/version.rb +1 -1
- metadata +4 -3
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d288b7a4cfcb9c31f083ccdcda53a5044a67913683ec417b329b60558f830279
|
4
|
+
data.tar.gz: 951b9ca7a32c6e41640095f408f26690573ff1accacb2158c22fa92519d58ffc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 311e01fa6a1cf8ec430f4c2c12f410819ed80609439112890fc6744b9425301f9a92a7cdfb2d9d6c1f798ec716ac1bc76c4e148de77acd2d122f885b217bf043
|
7
|
+
data.tar.gz: 0dc8b984bc18d767493020e8b04e7a5cda23972dbd6abb1c2e0e54c67efff6dd7c3a8a74b79dd53dea2f4309639f8a63a8bacef5e759f0e96646feeb7b514d2b
|
checksums.yaml.gz.sig
CHANGED
@@ -1 +1,3 @@
|
|
1
|
-
|
1
|
+
��v��{��foQ�hI���6���7u�V�Ig�Fh�:�F�|�y��t( �
|
2
|
+
�u�Ŧf��I~�W�V�T�+j�_7�Hk<��b�k$30����d����o����3��m���t����]
|
3
|
+
��X�T�gv��g��3�1u"vx=i��P��5mā��wٗ�֘�]��B�8�A����^P���Ԕͽ\��I_%�ٞa{�m$�m|�{��S)O���oZ�ۢ�?
|
data.tar.gz.sig
CHANGED
Binary file
|
data/LICENSE.txt
CHANGED
data/lib/rspeckled/plugins.rb
CHANGED
@@ -79,6 +79,7 @@ require 'rspeckled/plugins/hooks/dox'
|
|
79
79
|
require 'rspeckled/plugins/hooks/elasticsearch'
|
80
80
|
require 'rspeckled/plugins/hooks/factory_bot' if defined?(::FactoryBot)
|
81
81
|
require 'rspeckled/plugins/hooks/foreign_keys'
|
82
|
+
require 'rspeckled/plugins/hooks/rails' if defined?(::Rails)
|
82
83
|
require 'rspeckled/plugins/hooks/redis' if defined?(::Redis)
|
83
84
|
require 'rspeckled/plugins/hooks/referehencible'
|
84
85
|
require 'rspeckled/plugins/hooks/rspec_mocks'
|
@@ -23,7 +23,6 @@ RSpec.configure do |config|
|
|
23
23
|
.name[/(?:.*::)?(\w+)\z/, 1]
|
24
24
|
.gsub(/([a-z])([A-Z])/, '\1_\2')
|
25
25
|
.downcase
|
26
|
-
|
27
26
|
defaults = {
|
28
27
|
:type => :json_web_token,
|
29
28
|
:authentication_method => :"authenticate_#{class_name_underscored}!",
|
@@ -38,14 +37,12 @@ RSpec.configure do |config|
|
|
38
37
|
}
|
39
38
|
|
40
39
|
options = defaults.deep_merge(options)
|
41
|
-
|
42
40
|
instance = case options[:strategy]
|
43
41
|
when :factory
|
44
42
|
::FactoryBot.create(class_name_underscored.to_sym, *options[:class_instance_traits], options[:class_instance_overrides])
|
45
43
|
when :instance
|
46
44
|
options[:class].new(options[:class_instance_overrides])
|
47
45
|
end
|
48
|
-
|
49
46
|
authentication_result = options[:successful?] ? instance : nil
|
50
47
|
|
51
48
|
case options[:type]
|
@@ -1,13 +1,5 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
begin
|
4
|
-
autodetected = ::DatabaseCleaner::Base.new.__send__(:autodetect)
|
5
|
-
rescue ::DatabaseCleaner::NoORMDetected
|
6
|
-
autodetected = false
|
7
|
-
end
|
8
|
-
|
9
|
-
return unless autodetected
|
10
|
-
|
11
3
|
RSpec.configure do |config|
|
12
4
|
config.before(:suite) do
|
13
5
|
config.rspeckled_logger.debug("Before Suite - Start - #{__FILE__}")
|
@@ -20,7 +12,7 @@ RSpec.configure do |config|
|
|
20
12
|
config.around(:each) do |example|
|
21
13
|
config.rspeckled_logger.debug("Around Each - Start - #{__FILE__}")
|
22
14
|
|
23
|
-
::DatabaseCleaner.strategy = if example.metadata[:js]
|
15
|
+
::DatabaseCleaner.strategy = if example.metadata[:js]
|
24
16
|
[:truncation, :except => %w{ar_internal_metadata}]
|
25
17
|
else
|
26
18
|
:transaction
|
@@ -16,50 +16,48 @@ RSpec.configure do |config|
|
|
16
16
|
{ :tables => :all }
|
17
17
|
end
|
18
18
|
|
19
|
-
|
19
|
+
foreign_key_trigger_disable_statements_sql = <<~HEREDOC
|
20
20
|
SELECT
|
21
|
-
"
|
22
|
-
"pg_class"."relname" AS "local_table_name",
|
23
|
-
"constraint_column_usage"."table_name" AS "foreign_table_name",
|
24
|
-
"constraint_column_usage"."column_name" AS "foreign_column_name"
|
21
|
+
'ALTER TABLE "' || "pg_namespace"."nspname" || '"."' || "pg_class"."relname" || '" DISABLE TRIGGER "' || "pg_trigger"."tgname" || '";' AS "statement"
|
25
22
|
FROM
|
26
|
-
"
|
27
|
-
INNER JOIN
|
28
|
-
"pg_constraint"
|
29
|
-
ON
|
30
|
-
"constraint_column_usage"."constraint_name" = "pg_constraint"."conname"
|
23
|
+
"pg_trigger"
|
31
24
|
INNER JOIN
|
32
25
|
"pg_class"
|
33
|
-
|
34
|
-
|
26
|
+
ON
|
27
|
+
"pg_trigger"."tgrelid" = "pg_class"."oid"
|
28
|
+
INNER JOIN
|
29
|
+
"pg_namespace"
|
30
|
+
ON
|
31
|
+
"pg_class"."relnamespace" = "pg_namespace"."oid"
|
32
|
+
INNER JOIN
|
33
|
+
"pg_proc"
|
34
|
+
ON
|
35
|
+
"pg_trigger"."tgfoid" = "pg_proc"."oid"
|
35
36
|
WHERE
|
36
|
-
"
|
37
|
-
AND
|
38
|
-
"pg_constraint"."condeferrable" = 't'
|
37
|
+
regexp_match("pg_proc"."proname", '.*_FKey_.*') IS NOT NULL
|
39
38
|
HEREDOC
|
40
39
|
|
41
40
|
unless options[:tables] == :all
|
42
|
-
|
41
|
+
foreign_key_trigger_disable_statements_sql += " AND\n "
|
43
42
|
|
44
43
|
table_constraint_sql = options[:tables]
|
45
44
|
.map { |table_name| "'#{table_name}'" }
|
46
45
|
.join(', ')
|
47
46
|
|
48
|
-
|
47
|
+
foreign_key_trigger_disable_statements_sql += %Q{ "pg_class"."relname" IN (#{table_constraint_sql})}
|
49
48
|
end
|
50
49
|
|
51
|
-
|
50
|
+
foreign_key_trigger_disable_statements = ::ActiveRecord::Base.connection.select_values(foreign_key_trigger_disable_statements_sql).join(' ')
|
52
51
|
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
example.run
|
52
|
+
::ActiveRecord::Base.transaction do
|
53
|
+
if foreign_key_trigger_disable_statements.blank?
|
54
|
+
puts 'You asked to disable foreign keys but there were no foreign keys found to disable'
|
55
|
+
else
|
56
|
+
::ActiveRecord::Base.connection.execute(foreign_key_trigger_disable_statements)
|
57
|
+
end
|
60
58
|
|
61
|
-
|
62
|
-
|
59
|
+
example.run
|
60
|
+
end
|
63
61
|
|
64
62
|
config.rspeckled_logger.debug("Around Each - End - #{__FILE__}")
|
65
63
|
end
|
@@ -0,0 +1,50 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
RSpec.configure do |config|
|
4
|
+
config.around(:each, :debug => true) do |example|
|
5
|
+
config.rspeckled_logger.debug("Around Each - Start - #{__FILE__}")
|
6
|
+
|
7
|
+
debug_rails_logger = ::ActiveSupport::TaggedLogging.new(ActiveSupport::Logger.new($stdout))
|
8
|
+
debug_rails_logger.level = :debug
|
9
|
+
|
10
|
+
current_rails_configuration_logger = ::Rails.configuration.logger
|
11
|
+
current_rails_configuration_logger_level = ::Rails.configuration.log_level
|
12
|
+
|
13
|
+
current_action_cable_logger = ::ActionCable.server.config.logger if defined?(::ActionCable)
|
14
|
+
current_action_controller_logger = ::ActionController::Base.logger if defined?(::ActionController)
|
15
|
+
current_action_mailer_logger = ::ActionMailer::Base.logger if defined?(::ActionMailer)
|
16
|
+
current_action_view_logger = ::ActionView::Base.logger if defined?(::ActionView)
|
17
|
+
current_active_job_logger = ::ActiveJob::Base.logger if defined?(::ActiveJob)
|
18
|
+
current_active_record_logger = ::ActiveRecord::Base.logger if defined?(::ActiveRecord)
|
19
|
+
current_active_storage_logger = ::ActiveStorage.logger if defined?(::ActiveStorage)
|
20
|
+
current_rails_logger = ::Rails.logger if defined?(::Rails)
|
21
|
+
|
22
|
+
::Rails.configuration.log_level = debug_rails_logger.level
|
23
|
+
::Rails.configuration.logger = debug_rails_logger
|
24
|
+
|
25
|
+
::ActionCable.server.config.logger = debug_rails_logger if defined?(::ActionCable)
|
26
|
+
::ActionController::Base.logger = debug_rails_logger if defined?(::ActionController)
|
27
|
+
::ActionMailer::Base.logger = debug_rails_logger if defined?(::ActionMailer)
|
28
|
+
::ActionView::Base.logger = debug_rails_logger if defined?(::ActionView)
|
29
|
+
::ActiveJob::Base.logger = debug_rails_logger if defined?(::ActiveJob)
|
30
|
+
::ActiveRecord::Base.logger = debug_rails_logger if defined?(::ActiveRecord)
|
31
|
+
::ActiveStorage.logger = debug_rails_logger if defined?(::ActiveStorage)
|
32
|
+
::Rails.logger = debug_rails_logger if defined?(::Rails)
|
33
|
+
|
34
|
+
example.run
|
35
|
+
|
36
|
+
::Rails.configuration.logger = current_rails_configuration_logger
|
37
|
+
::Rails.configuration.log_level = current_rails_configuration_logger_level
|
38
|
+
|
39
|
+
::ActionCable.server.config.logger = current_action_cable_logger if defined?(::ActionCable)
|
40
|
+
::ActionController::Base.logger = current_action_controller_logger if defined?(::ActionController)
|
41
|
+
::ActionMailer::Base.logger = current_action_mailer_logger if defined?(::ActionMailer)
|
42
|
+
::ActionView::Base.logger = current_action_view_logger if defined?(::ActionView)
|
43
|
+
::ActiveJob::Base.logger = current_active_job_logger if defined?(::ActiveJob)
|
44
|
+
::ActiveRecord::Base.logger = current_active_record_logger if defined?(::ActiveRecord)
|
45
|
+
::ActiveStorage.logger = current_active_storage_logger if defined?(::ActiveStorage)
|
46
|
+
::Rails.logger = current_rails_logger if defined?(::Rails)
|
47
|
+
|
48
|
+
config.rspeckled_logger.debug("Around Each - End - #{__FILE__}") if defined?(config)
|
49
|
+
end
|
50
|
+
end
|
@@ -11,16 +11,13 @@ rescue Errno::EEXIST
|
|
11
11
|
end
|
12
12
|
|
13
13
|
log_file = File.join(Dir.pwd, 'log', 'activerecord.log')
|
14
|
-
|
15
14
|
rails_database_yaml_file_path = File.join(Dir.pwd, 'config', 'database.yml')
|
16
15
|
rails_engine_database_yaml_file_path = File.join(Dir.pwd, 'spec', 'dummy', 'config', 'database.yml')
|
17
|
-
|
18
16
|
database_yaml_file_path = if File.exist? rails_engine_database_yaml_file_path
|
19
17
|
rails_engine_database_yaml_file_path
|
20
18
|
else
|
21
19
|
rails_database_yaml_file_path
|
22
20
|
end
|
23
|
-
|
24
21
|
connection_info = YAML.load_file(database_yaml_file_path)['test']
|
25
22
|
|
26
23
|
ActiveRecord::Base.logger = Logger.new(log_file)
|
data/lib/rspeckled/support.rb
CHANGED
@@ -8,6 +8,7 @@ require 'logger'
|
|
8
8
|
#
|
9
9
|
abort('DATABASE_URL environment variable is set') if ENV['DATABASE_URL']
|
10
10
|
|
11
|
+
# rubocop:disable Layout/MultilineMethodArgumentLineBreaks
|
11
12
|
RSpec.configure do |config|
|
12
13
|
##############################################################################
|
13
14
|
# RSPECKLED CONFIGURATION
|
@@ -149,3 +150,4 @@ RSpec.configure do |config|
|
|
149
150
|
end
|
150
151
|
end
|
151
152
|
end
|
153
|
+
# rubocop:enable Layout/MultilineMethodArgumentLineBreaks
|
data/lib/rspeckled/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rspeckled
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 2.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- thegranddesign
|
@@ -36,7 +36,7 @@ cert_chain:
|
|
36
36
|
6ZCHhOtYwlYSqOmGfPSsB7i1W4YABE86ZQaPEwhuPkkdvqSFUSryDLpcB8S/2fp4
|
37
37
|
bHTbBi7YQCFxKay21QDo3HPPRBq4YQ+Xy9w=
|
38
38
|
-----END CERTIFICATE-----
|
39
|
-
date:
|
39
|
+
date: 2020-03-07 00:00:00.000000000 Z
|
40
40
|
dependencies:
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: rspec
|
@@ -165,6 +165,7 @@ files:
|
|
165
165
|
- lib/rspeckled/plugins/hooks/factory_bot.rb
|
166
166
|
- lib/rspeckled/plugins/hooks/foreign_keys.rb
|
167
167
|
- lib/rspeckled/plugins/hooks/garbage_collection.rb
|
168
|
+
- lib/rspeckled/plugins/hooks/rails.rb
|
168
169
|
- lib/rspeckled/plugins/hooks/redis.rb
|
169
170
|
- lib/rspeckled/plugins/hooks/referehencible.rb
|
170
171
|
- lib/rspeckled/plugins/hooks/request.rb
|
@@ -215,7 +216,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
215
216
|
- !ruby/object:Gem::Version
|
216
217
|
version: '0'
|
217
218
|
requirements: []
|
218
|
-
rubygems_version: 3.0.
|
219
|
+
rubygems_version: 3.0.3
|
219
220
|
signing_key:
|
220
221
|
specification_version: 4
|
221
222
|
summary: Stop Copying and Pasting Your RSpec Configuration
|
metadata.gz.sig
CHANGED
Binary file
|