rspeckled 1.1.3 → 1.2.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f2242b4977c2138c909d8092427a5cd4c5d156555f33d27cbea35ac1a0c5d66b
4
- data.tar.gz: bab6b43c24e59de2df055c0591860f6d225a71d83711b306ae25bcf64ca7407a
3
+ metadata.gz: 8fe74e754785c816902f45bb183ccb508cd4f083c1a4b7936aad5515ccbb7e07
4
+ data.tar.gz: 33272063f72e86e7c57e13c9d77630f3487b00c0298a70c089f20c80af520c55
5
5
  SHA512:
6
- metadata.gz: c923ead3e522635a882f5da44de06f7cf4f90ecfccab83599a85b56075af0867164bd7271909c4b2418ba9e1559841b974aa0c07ffb8fd4cfc017ff881e91a62
7
- data.tar.gz: d45aef40ab984bc8d0d596095197958511a50594038c460e309c19706e3227b58cf31eb6124e342e8b3e9f6477a01236a75f5a1ce930ffafb6172e04f148bc5a
6
+ metadata.gz: 9ee06b9533d6eb4e680cb4a5a5d3e7929f0787c2b0ef76872dd90924d04012599d1d670dd83375d64dc889782c249ec7da02f02fb8ef3e0724702e2bd5d53ca6
7
+ data.tar.gz: b6ae744f8db4e05cff9118c9dce7748536b449780c788b8a6081f320c6f781947e8fba0d731f03e461bd66e280511d6edb1c377aa4365d3fe9a3db290f385a83
checksums.yaml.gz.sig CHANGED
@@ -1 +1,2 @@
1
- ^.Pg7�^�@ ���R��CI�HPㆅG�*����dP�i0�e�#xl�B�<������!����}$Ax�xOˑ��v�@��eJ����?���Se�QK��X��1��l���@��C��r���_D)2X�b��CwG����~�F��Ǧ��'���3�;�+,���L?��ȥ�lB�;�a���$��c��������1vk���|��������B��2� 3r����-����`�̜�)�$§��0
1
+ Qp��w����O��%6��[�2����8M���VV<�1*$���g���Ofc_��=��ҫП͗������i��J(
2
+ �(���y�;t�*�Qu﹙@�0a���?;��&�` ɧ�����������s�?��N55=[j2�?�?�%.F���^��Q�A� ƨH@j�0�w�71�k����X�s~��^��1�agާ�?�� �1�|�)s��3�����{�:��� ��M�4���rd#݌^xL��[ c�4���w�WU�H�1�r�?!�TȊ�:ʻi�:zWY�7o�1�CX`���_�W�>�L�:�i�O=
data.tar.gz.sig CHANGED
Binary file
@@ -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/redis' if defined?(::Redis)
82
83
  require 'rspeckled/plugins/hooks/referehencible'
83
84
  require 'rspeckled/plugins/hooks/rspec_mocks'
84
85
  require 'rspeckled/plugins/hooks/selenium_webdriver'
@@ -0,0 +1,24 @@
1
+ # frozen_string_literal: true
2
+
3
+ RSpec.configure do |config|
4
+ config.before(:each, :cache => lambda { |v| !!v }) do |example|
5
+ config.rspeckled_logger.debug("Before Each - Start - #{__FILE__}")
6
+
7
+ cache_metadata = example.metadata[:cache]
8
+
9
+ # rubocop:disable Metrics/BlockNesting
10
+ if cache_metadata[:reset]
11
+ client = ::Redis.new(:host => '127.0.0.1', :port => 6379, :db => 2) # rubocop:disable Style/IpAddresses
12
+ reset_patterns = Array(cache_metadata[:reset])
13
+
14
+ client.keys.each do |key|
15
+ next unless reset_patterns.any? { |regex| key.match?(regex) }
16
+
17
+ client.del(key)
18
+ end
19
+ end
20
+ # rubocop:enable Metrics/BlockNesting
21
+
22
+ config.rspeckled_logger.debug("Before Each - End - #{__FILE__}")
23
+ end
24
+ end
@@ -1,27 +1,39 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ SIDEKIQ_BATCH_CALLBACK_PATTERN = /\Ab\-[a-zA-Z0-9_\-]{14}\z/
4
+ SIDEKIQ_BATCH_DATA_PATTERN = /\Abatches\z/
5
+ SIDEKIQ_BATCH_JOBS_PATTERN = /\Ab\-[a-zA-Z0-9_\-]{14}-jids\z/
6
+ SIDEKIQ_LIMITER_DATA_PATTERN = /\Almtr-c-/
7
+ SIDEKIQ_LIMITER_JOBS_PATTERN = /\Almtr-cfree-/
8
+
3
9
  RSpec.configure do |config|
4
10
  config.before(:each, :queue => lambda { |v| !!v }) do |example|
5
11
  config.rspeckled_logger.debug("Before Each - Start - #{__FILE__}")
6
12
 
13
+ # Changes Any Limiters Created to Be Unlimited
14
+ if defined?(::Sidekiq::Limiter)
15
+ allow(::Sidekiq::Limiter).to receive(:concurrent)
16
+ .and_return(::Sidekiq::Limiter::Unlimited.new)
17
+ allow(::Sidekiq::Limiter).to receive(:bucket)
18
+ .and_return(::Sidekiq::Limiter::Unlimited.new)
19
+ allow(::Sidekiq::Limiter).to receive(:window)
20
+ .and_return(::Sidekiq::Limiter::Unlimited.new)
21
+ end
22
+
7
23
  # Clears out the jobs for tests using the fake testing
8
24
  ::Sidekiq::Worker.clear_all
9
25
  ::Sidekiq::Queues.clear_all
10
26
 
11
- # Sidekiq Enterprise Doesn't Like Having the Cache Cleared Between Runs
12
27
  # rubocop:disable Metrics/BlockNesting
13
- unless defined?(::Sidekiq::Enterprise)
14
- ::Sidekiq.redis do |client|
15
- connection = client.__send__(:instance_variable_get, :@redis) ||
16
- client.__send__(:instance_variable_get, :@client)
17
-
18
- connection.call([:flushdb])
19
- end
20
-
21
- ::Sidekiq.redis do |client|
22
- client.keys.each do |key|
23
- client.del(key)
24
- end
28
+ ::Sidekiq.redis do |client|
29
+ client.keys.each do |key|
30
+ next unless key.match?(SIDEKIQ_BATCH_CALLBACK_PATTERN) ||
31
+ key.match?(SIDEKIQ_BATCH_DATA_PATTERN) ||
32
+ key.match?(SIDEKIQ_BATCH_JOBS_PATTERN) ||
33
+ key.match?(SIDEKIQ_LIMITER_DATA_PATTERN) ||
34
+ key.match?(SIDEKIQ_LIMITER_JOBS_PATTERN)
35
+
36
+ client.del(key)
25
37
  end
26
38
  end
27
39
  # rubocop:enable Metrics/BlockNesting
@@ -118,6 +118,14 @@ RSpec.configure do |config|
118
118
  # Make all randomization deterministic based on the random run order seed
119
119
  Kernel.srand config.seed
120
120
 
121
+ ##############################################################################
122
+ # CUSTOM METADATA TYPES
123
+ ##############################################################################
124
+
125
+ config.define_derived_metadata(:file_path => %r{spec/(jobs|workers)}) do |metadata|
126
+ metadata[:queue] = true if metadata[:queue].nil?
127
+ end
128
+
121
129
  ##############################################################################
122
130
  # PERSISTENT FAILURES
123
131
  ##############################################################################
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Rspeckled
4
- VERSION = '1.1.3'
4
+ VERSION = '1.2.0'
5
5
  end
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: 1.1.3
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - thegranddesign
@@ -35,7 +35,7 @@ cert_chain:
35
35
  eUgMp+qKjyM1NGj/222soSUpWqOE16L23vv8sWIbMIADdR8dephQ6jMovYylUmE5
36
36
  KHp+JJQviSN0i4z8gVL2zloo+xZf791LiJH8Kcjpx43jhg0WdR4=
37
37
  -----END CERTIFICATE-----
38
- date: 2018-10-11 00:00:00.000000000 Z
38
+ date: 2018-11-04 00:00:00.000000000 Z
39
39
  dependencies:
40
40
  - !ruby/object:Gem::Dependency
41
41
  name: rspec
@@ -164,6 +164,7 @@ files:
164
164
  - lib/rspeckled/plugins/hooks/factory_bot.rb
165
165
  - lib/rspeckled/plugins/hooks/foreign_keys.rb
166
166
  - lib/rspeckled/plugins/hooks/garbage_collection.rb
167
+ - lib/rspeckled/plugins/hooks/redis.rb
167
168
  - lib/rspeckled/plugins/hooks/referehencible.rb
168
169
  - lib/rspeckled/plugins/hooks/request.rb
169
170
  - lib/rspeckled/plugins/hooks/rspec_mocks.rb
@@ -209,7 +210,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
209
210
  version: '0'
210
211
  requirements: []
211
212
  rubyforge_project:
212
- rubygems_version: 2.7.7
213
+ rubygems_version: 2.7.6
213
214
  signing_key:
214
215
  specification_version: 4
215
216
  summary: Stop Copying and Pasting Your RSpec Configuration
metadata.gz.sig CHANGED
Binary file