rspec-all_records_validator 0.0.6 → 0.0.9

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7a590f26a5cb74d1d40c37c638d6b8796affd44205b3cacd20f0a974a54553cf
4
- data.tar.gz: 6f2eee50c82734a8decf5a8b3f9f6445f1c72a203a2835acfcbb5cdc24342f25
3
+ metadata.gz: e3ababcff1dab5b455e5e6aba00a8543a64f6c1ec8bf8473421379f643e27b43
4
+ data.tar.gz: 0c541b63d4ff5594a80c569ab5e74b2c12c94294e3f03240532c9ac5efea58b2
5
5
  SHA512:
6
- metadata.gz: 10bae6935b1d3ea06818f47ba3fad71edad3143bde6598431e97909f5a30efb094e30cae8c7869b47112534922f168b45238cbf53a9bcd6805ec9ba676adfe17
7
- data.tar.gz: 10ede754ac8918afd5be58f134633661943ec3b788bc5e1f5354a255c5f18651a313ae4bc550c11e21e7dff032a60311ed1648971739fe82deb2754fbfbfae3e
6
+ metadata.gz: 1317679c0a865737fff766a8c52bc36744ed3614a1cec199cf5fc9417cf973dcf86b2c2c1f744509b6118e496b9a438e8dd3bc04a529c64a509e28286fb72cdb
7
+ data.tar.gz: 85b9e61b9ac6a8e76a4fd4d243fa7a36095ebcf096c8f7ab1fb42db0a86ce5006cb26a63a80d21f11d0982da62706ee264823c127ff055a70636f3e7aa316d79
data/Gemfile CHANGED
@@ -6,5 +6,5 @@ source "https://rubygems.org"
6
6
  gemspec
7
7
 
8
8
  gem 'rake'
9
- gem 'rails'
9
+ gem 'activerecord'
10
10
  gem 'rspec'
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- rspec-all_records_validator (0.0.6)
4
+ rspec-all_records_validator (0.0.9)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
@@ -171,6 +171,7 @@ PLATFORMS
171
171
  x86_64-linux
172
172
 
173
173
  DEPENDENCIES
174
+ activerecord
174
175
  rails
175
176
  rake
176
177
  rspec
data/README.md CHANGED
@@ -31,7 +31,7 @@ require 'rspec/all_records_validator'
31
31
 
32
32
  RSpec.configure do |config|
33
33
  config.after type: :system do
34
- RSpec::AllRecordsValidator.validate_all_objects {|record| expect(record).to be_valid }
34
+ RSpec::AllRecordsValidator.validate!
35
35
  end
36
36
  end
37
37
  ```
@@ -43,11 +43,22 @@ You can avoid validation for specific models:
43
43
  ```ruby
44
44
  RSpec.configure do |config|
45
45
  config.after type: :system do
46
- RSpec::AllRecordsValidator.validate_all_objects(ignore_models: [DoNotValidatrThisModel]) {|record| expect(record).to be_valid }
46
+ RSpec::AllRecordsValidator.validate!(ignored_models: [DoNotValidateThisModel])
47
47
  end
48
48
  end
49
49
  ```
50
50
 
51
+ #### Avoid validation for model whitch has no `has_many` association
52
+
53
+ ```ruby
54
+ RSpec.configure do |config|
55
+ config.after type: :system do
56
+ RSpec::AllRecordsValidator.validate!(only_has_many: true)
57
+ end
58
+ end
59
+ ```
60
+
61
+
51
62
  #### For feature spec
52
63
 
53
64
  You can config This setting for feature spec
@@ -55,7 +66,19 @@ You can config This setting for feature spec
55
66
  ```ruby
56
67
  RSpec.configure do |config|
57
68
  config.after type: :feature do
58
- RSpec::AllRecordsValidator.validate_all_objects {|record| expect(record).to be_valid }
69
+ RSpec::AllRecordsValidator.validate!
59
70
  end
60
71
  end
61
72
  ```
73
+
74
+ ### Pro Tip
75
+
76
+ If you use fixture or master data, ignore them is good for speed.
77
+
78
+ ```ruby
79
+ RSpec::AllRecordsValidator.validate!(ignored_models: [MasterDataModel])
80
+ ```
81
+
82
+ ## Contributing
83
+
84
+ Send me your pull requests.
data/Rakefile CHANGED
@@ -1,3 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require "bundler/gem_tasks"
4
+ require "rspec/core/rake_task"
5
+
6
+ RSpec::Core::RakeTask.new(:spec)
7
+
8
+ task :default => :spec
@@ -2,6 +2,6 @@
2
2
 
3
3
  module RSpec
4
4
  module AllRecordsValidator
5
- VERSION = "0.0.6"
5
+ VERSION = "0.0.9"
6
6
  end
7
7
  end
@@ -4,12 +4,12 @@ require_relative "all_records_validator/version"
4
4
 
5
5
  module RSpec
6
6
  module AllRecordsValidator
7
- def self.validate_all_objects(ignore_models: [])
8
- target_classes = ApplicationRecord.subclasses.reject {|klass| klass.abstract_class? || ignore_models.include?(klass) }
7
+ def self.validate!(ignored_models: [], only_has_many: false)
8
+ target_classes = ApplicationRecord.subclasses.reject {|klass| klass.abstract_class? || ignored_models.include?(klass) || (only_has_many && klass.reflect_on_all_associations(:has_many).blank?) }
9
9
 
10
10
  target_classes.each do |klass|
11
11
  klass.all.each do |obj|
12
- yield(obj)
12
+ obj.validate!
13
13
  end
14
14
  end
15
15
  end
@@ -11,7 +11,7 @@ Gem::Specification.new do |spec|
11
11
  spec.summary = "validate all objects at end of system spec"
12
12
  spec.homepage = "https://github.com/colorbox/rspec-all_records_validator"
13
13
  spec.license = "MIT"
14
- spec.required_ruby_version = Gem::Requirement.new(">= 2.4.0")
14
+ spec.required_ruby_version = Gem::Requirement.new(">= 2.7.0")
15
15
 
16
16
  spec.metadata["homepage_uri"] = spec.homepage
17
17
  spec.metadata["source_code_uri"] = spec.homepage
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rspec-all_records_validator
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6
4
+ version: 0.0.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - colorbox
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-03-30 00:00:00.000000000 Z
11
+ date: 2022-06-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -89,14 +89,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
89
89
  requirements:
90
90
  - - ">="
91
91
  - !ruby/object:Gem::Version
92
- version: 2.4.0
92
+ version: 2.7.0
93
93
  required_rubygems_version: !ruby/object:Gem::Requirement
94
94
  requirements:
95
95
  - - ">="
96
96
  - !ruby/object:Gem::Version
97
97
  version: '0'
98
98
  requirements: []
99
- rubygems_version: 3.3.1
99
+ rubygems_version: 3.3.4
100
100
  signing_key:
101
101
  specification_version: 4
102
102
  summary: validate all objects at end of system spec