rspec-be_valid_when_matcher 0.3.0 → 1.0.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/README.md +3 -2
- data/lib/rspec/be_valid_when_matcher.rb +12 -11
- data/spec/examples.cache +110 -105
- data/spec/rspec/be_valid_when/is_not_present_spec.rb +8 -13
- data/spec/rspec/be_valid_when/is_type_spec.rb +213 -0
- data/spec/support/has_correct_description.rb +5 -0
- data/spec/support/returns_proper_results.rb +8 -0
- data/spec/support/takes_no_arguments.rb +7 -0
- metadata +11 -27
- data/spec/rspec/be_valid_when/is_array_spec.rb +0 -80
- data/spec/rspec/be_valid_when/is_bigdecimal_spec.rb +0 -81
- data/spec/rspec/be_valid_when/is_bignum_spec.rb +0 -72
- data/spec/rspec/be_valid_when/is_complex_spec.rb +0 -74
- data/spec/rspec/be_valid_when/is_fixnum_spec.rb +0 -72
- data/spec/rspec/be_valid_when/is_float_spec.rb +0 -72
- data/spec/rspec/be_valid_when/is_hash_spec.rb +0 -80
- data/spec/rspec/be_valid_when/is_number_spec.rb +0 -61
- data/spec/rspec/be_valid_when/is_rational_spec.rb +0 -74
- data/spec/rspec/be_valid_when/is_regex_spec.rb +0 -80
- data/spec/rspec/be_valid_when/is_string_spec.rb +0 -70
- data/spec/rspec/be_valid_when/is_symbol_spec.rb +0 -80
@@ -1,74 +0,0 @@
|
|
1
|
-
require 'active_model'
|
2
|
-
|
3
|
-
# @private
|
4
|
-
class FakeModel
|
5
|
-
include ActiveModel::Validations
|
6
|
-
|
7
|
-
attr_accessor :rational_field
|
8
|
-
attr_accessor :not_rational_field
|
9
|
-
|
10
|
-
validates_numericality_of :rational_field, greater_than: 40
|
11
|
-
validate :not_rational_field_cannot_be_rational
|
12
|
-
|
13
|
-
private
|
14
|
-
|
15
|
-
def not_rational_field_cannot_be_rational
|
16
|
-
errors.add(:not_rational_field, "can't be rational") if not_rational_field.is_a? Rational
|
17
|
-
end
|
18
|
-
end
|
19
|
-
|
20
|
-
describe 'be_valid_when#is_rational' do
|
21
|
-
let(:model) { FakeModel.new }
|
22
|
-
|
23
|
-
context 'with no arguments' do
|
24
|
-
let(:description) { %r{^be valid when #rational_field is a rational \(42/1\)$} }
|
25
|
-
|
26
|
-
let(:passing_matcher) { be_valid_when(:rational_field).is_rational }
|
27
|
-
let(:failing_matcher) { be_valid_when(:not_rational_field).is_rational }
|
28
|
-
|
29
|
-
it 'has the correct description' do
|
30
|
-
expect(passing_matcher.description).to match description
|
31
|
-
end
|
32
|
-
|
33
|
-
it 'returns proper result' do
|
34
|
-
expect(passing_matcher.matches? model).to eq true
|
35
|
-
expect(passing_matcher.does_not_match? model).to eq false
|
36
|
-
expect(failing_matcher.matches? model).to eq false
|
37
|
-
expect(failing_matcher.does_not_match? model).to eq true
|
38
|
-
end
|
39
|
-
end
|
40
|
-
|
41
|
-
context 'with one argument' do
|
42
|
-
let(:description) { %r{^be valid when #rational_field is a rational \(50/1\)$} }
|
43
|
-
|
44
|
-
let(:passing_matcher) { be_valid_when(:rational_field).is_rational 50.to_r }
|
45
|
-
let(:failing_matcher) { be_valid_when(:rational_field).is_rational 30.to_r }
|
46
|
-
|
47
|
-
it 'has the correct description' do
|
48
|
-
expect(passing_matcher.description).to match description
|
49
|
-
end
|
50
|
-
|
51
|
-
it 'returns proper result' do
|
52
|
-
expect(passing_matcher.matches? model).to eq true
|
53
|
-
expect(passing_matcher.does_not_match? model).to eq false
|
54
|
-
expect(failing_matcher.matches? model).to eq false
|
55
|
-
expect(failing_matcher.does_not_match? model).to eq true
|
56
|
-
end
|
57
|
-
|
58
|
-
it 'should fail if passed non rational' do
|
59
|
-
expect { be_valid_when(:rational_field).is_rational 42 }.to raise_error ArgumentError
|
60
|
-
expect { be_valid_when(:rational_field).is_rational 42**42 }.to raise_error ArgumentError
|
61
|
-
expect { be_valid_when(:rational_field).is_rational 3.14 }.to raise_error ArgumentError
|
62
|
-
expect { be_valid_when(:rational_field).is_rational 42.to_c }.to raise_error ArgumentError
|
63
|
-
expect do
|
64
|
-
be_valid_when(:rational_field).is_rational BigDecimal.new
|
65
|
-
end.to raise_error ArgumentError
|
66
|
-
expect { be_valid_when(:rational_field).is_rational 'value' }.to raise_error ArgumentError
|
67
|
-
expect { be_valid_when(:rational_field).is_rational '42' }.to raise_error ArgumentError
|
68
|
-
expect { be_valid_when(:rational_field).is_rational(/^value$/) }.to raise_error ArgumentError
|
69
|
-
expect { be_valid_when(:rational_field).is_rational [1, 2] }.to raise_error ArgumentError
|
70
|
-
expect { be_valid_when(:rational_field).is_rational({}) }.to raise_error ArgumentError
|
71
|
-
expect { be_valid_when(:rational_field).is_rational :value }.to raise_error ArgumentError
|
72
|
-
end
|
73
|
-
end
|
74
|
-
end
|
@@ -1,80 +0,0 @@
|
|
1
|
-
require 'active_model'
|
2
|
-
|
3
|
-
# @private
|
4
|
-
class FakeModel
|
5
|
-
include ActiveModel::Validations
|
6
|
-
|
7
|
-
attr_accessor :regexp_field
|
8
|
-
attr_accessor :not_regexp_field
|
9
|
-
|
10
|
-
validate :regexp_field_should_be_regexp,
|
11
|
-
:regexp_field_cannot_be_empty,
|
12
|
-
:not_regexp_field_cannot_be_regexp
|
13
|
-
|
14
|
-
private
|
15
|
-
|
16
|
-
def regexp_field_should_be_regexp
|
17
|
-
errors.add(:regexp_field, 'should be regexp') unless regexp_field.is_a? Regexp
|
18
|
-
end
|
19
|
-
|
20
|
-
def regexp_field_cannot_be_empty
|
21
|
-
errors.add(:regexp_field, "can't be empty") if regexp_field.inspect.length < 3
|
22
|
-
end
|
23
|
-
|
24
|
-
def not_regexp_field_cannot_be_regexp
|
25
|
-
errors.add(:not_regexp_field, "can't be regexp") if not_regexp_field.is_a? Regexp
|
26
|
-
end
|
27
|
-
end
|
28
|
-
|
29
|
-
describe 'be_valid_when#is_regexp' do
|
30
|
-
let(:model) { FakeModel.new }
|
31
|
-
|
32
|
-
context 'with no arguments' do
|
33
|
-
let(:description) { %r{^be valid when #regexp_field is a regexp \(/\^value\$/\)$} }
|
34
|
-
|
35
|
-
let(:passing_matcher) { be_valid_when(:regexp_field).is_regexp }
|
36
|
-
let(:failing_matcher) { be_valid_when(:not_regexp_field).is_regexp }
|
37
|
-
|
38
|
-
it 'has the correct description' do
|
39
|
-
expect(passing_matcher.description).to match description
|
40
|
-
end
|
41
|
-
|
42
|
-
it 'returns proper result' do
|
43
|
-
expect(passing_matcher.matches? model).to eq true
|
44
|
-
expect(passing_matcher.does_not_match? model).to eq false
|
45
|
-
expect(failing_matcher.matches? model).to eq false
|
46
|
-
expect(failing_matcher.does_not_match? model).to eq true
|
47
|
-
end
|
48
|
-
end
|
49
|
-
|
50
|
-
context 'with one argument' do
|
51
|
-
let(:description) { %r{^be valid when #regexp_field is a regexp \(/some regexp/\)$} }
|
52
|
-
|
53
|
-
let(:passing_matcher) { be_valid_when(:regexp_field).is_regexp(/some regexp/) }
|
54
|
-
let(:failing_matcher) { be_valid_when(:regexp_field).is_regexp(//) }
|
55
|
-
|
56
|
-
it 'has the correct description' do
|
57
|
-
expect(passing_matcher.description).to match description
|
58
|
-
end
|
59
|
-
|
60
|
-
it 'returns proper result' do
|
61
|
-
expect(passing_matcher.matches? model).to eq true
|
62
|
-
expect(passing_matcher.does_not_match? model).to eq false
|
63
|
-
expect(failing_matcher.matches? model).to eq false
|
64
|
-
expect(failing_matcher.does_not_match? model).to eq true
|
65
|
-
end
|
66
|
-
|
67
|
-
it 'should fail if passed non regexp' do
|
68
|
-
expect { be_valid_when(:regexp_field).is_regexp 42 }.to raise_error ArgumentError
|
69
|
-
expect { be_valid_when(:regexp_field).is_regexp 42**42 }.to raise_error ArgumentError
|
70
|
-
expect { be_valid_when(:regexp_field).is_regexp 3.14 }.to raise_error ArgumentError
|
71
|
-
expect { be_valid_when(:regexp_field).is_regexp 42.to_c }.to raise_error ArgumentError
|
72
|
-
expect { be_valid_when(:regexp_field).is_regexp 42.to_r }.to raise_error ArgumentError
|
73
|
-
expect { be_valid_when(:regexp_field).is_regexp 'value' }.to raise_error ArgumentError
|
74
|
-
expect { be_valid_when(:regexp_field).is_regexp '42' }.to raise_error ArgumentError
|
75
|
-
expect { be_valid_when(:regexp_field).is_regexp [1, 2] }.to raise_error ArgumentError
|
76
|
-
expect { be_valid_when(:regexp_field).is_regexp({}) }.to raise_error ArgumentError
|
77
|
-
expect { be_valid_when(:regexp_field).is_regexp :value }.to raise_error ArgumentError
|
78
|
-
end
|
79
|
-
end
|
80
|
-
end
|
@@ -1,70 +0,0 @@
|
|
1
|
-
require 'active_model'
|
2
|
-
|
3
|
-
# @private
|
4
|
-
class FakeModel
|
5
|
-
include ActiveModel::Validations
|
6
|
-
|
7
|
-
attr_accessor :string_field
|
8
|
-
attr_accessor :not_string_field
|
9
|
-
|
10
|
-
validates_length_of :string_field, minimum: 4
|
11
|
-
validate :not_string_field_cannot_be_string
|
12
|
-
|
13
|
-
private
|
14
|
-
|
15
|
-
def not_string_field_cannot_be_string
|
16
|
-
errors.add(:not_string_field, "can't be string") if not_string_field.is_a? String
|
17
|
-
end
|
18
|
-
end
|
19
|
-
|
20
|
-
describe 'be_valid_when#is_string' do
|
21
|
-
let(:model) { FakeModel.new }
|
22
|
-
|
23
|
-
context 'with no arguments' do
|
24
|
-
let(:description) { /^be valid when #string_field is a string \("value"\)$/ }
|
25
|
-
|
26
|
-
let(:passing_matcher) { be_valid_when(:string_field).is_string }
|
27
|
-
let(:failing_matcher) { be_valid_when(:not_string_field).is_string }
|
28
|
-
|
29
|
-
it 'has the correct description' do
|
30
|
-
expect(passing_matcher.description).to match description
|
31
|
-
end
|
32
|
-
|
33
|
-
it 'returns proper result' do
|
34
|
-
expect(passing_matcher.matches? model).to eq true
|
35
|
-
expect(passing_matcher.does_not_match? model).to eq false
|
36
|
-
expect(failing_matcher.matches? model).to eq false
|
37
|
-
expect(failing_matcher.does_not_match? model).to eq true
|
38
|
-
end
|
39
|
-
end
|
40
|
-
|
41
|
-
context 'with one argument' do
|
42
|
-
let(:description) { /^be valid when #string_field is a string \("some string"\)$/ }
|
43
|
-
|
44
|
-
let(:passing_matcher) { be_valid_when(:string_field).is_string 'some string' }
|
45
|
-
let(:failing_matcher) { be_valid_when(:string_field).is_string 'a' }
|
46
|
-
|
47
|
-
it 'has the correct description' do
|
48
|
-
expect(passing_matcher.description).to match description
|
49
|
-
end
|
50
|
-
|
51
|
-
it 'returns proper result' do
|
52
|
-
expect(passing_matcher.matches? model).to eq true
|
53
|
-
expect(passing_matcher.does_not_match? model).to eq false
|
54
|
-
expect(failing_matcher.matches? model).to eq false
|
55
|
-
expect(failing_matcher.does_not_match? model).to eq true
|
56
|
-
end
|
57
|
-
|
58
|
-
it 'should fail if passed non string' do
|
59
|
-
expect { be_valid_when(:string_field).is_string 42 }.to raise_error ArgumentError
|
60
|
-
expect { be_valid_when(:string_field).is_string 42**42 }.to raise_error ArgumentError
|
61
|
-
expect { be_valid_when(:string_field).is_string 3.14 }.to raise_error ArgumentError
|
62
|
-
expect { be_valid_when(:string_field).is_string 42.to_c }.to raise_error ArgumentError
|
63
|
-
expect { be_valid_when(:string_field).is_string 42.to_r }.to raise_error ArgumentError
|
64
|
-
expect { be_valid_when(:string_field).is_string(/^value$/) }.to raise_error ArgumentError
|
65
|
-
expect { be_valid_when(:string_field).is_string [1, 2] }.to raise_error ArgumentError
|
66
|
-
expect { be_valid_when(:string_field).is_string({}) }.to raise_error ArgumentError
|
67
|
-
expect { be_valid_when(:string_field).is_string :value }.to raise_error ArgumentError
|
68
|
-
end
|
69
|
-
end
|
70
|
-
end
|
@@ -1,80 +0,0 @@
|
|
1
|
-
require 'active_model'
|
2
|
-
|
3
|
-
# @private
|
4
|
-
class FakeModel
|
5
|
-
include ActiveModel::Validations
|
6
|
-
|
7
|
-
attr_accessor :symbol_field
|
8
|
-
attr_accessor :not_symbol_field
|
9
|
-
|
10
|
-
validate :symbol_field_should_be_symbol,
|
11
|
-
:symbol_field_cannot_be_short,
|
12
|
-
:not_symbol_field_cannot_be_symbol
|
13
|
-
|
14
|
-
private
|
15
|
-
|
16
|
-
def symbol_field_should_be_symbol
|
17
|
-
errors.add(:symbol_field, 'should be symbol') unless symbol_field.is_a? Symbol
|
18
|
-
end
|
19
|
-
|
20
|
-
def symbol_field_cannot_be_short
|
21
|
-
errors.add(:symbol_field, "can't be short") if !symbol_field.nil? && symbol_field.length < 2
|
22
|
-
end
|
23
|
-
|
24
|
-
def not_symbol_field_cannot_be_symbol
|
25
|
-
errors.add(:not_symbol_field, "can't be symbol") if not_symbol_field.is_a? Symbol
|
26
|
-
end
|
27
|
-
end
|
28
|
-
|
29
|
-
describe 'be_valid_when#is_symbol' do
|
30
|
-
let(:model) { FakeModel.new }
|
31
|
-
|
32
|
-
context 'with no arguments' do
|
33
|
-
let(:description) { /^be valid when #symbol_field is a symbol \(:value\)$/ }
|
34
|
-
|
35
|
-
let(:passing_matcher) { be_valid_when(:symbol_field).is_symbol }
|
36
|
-
let(:failing_matcher) { be_valid_when(:not_symbol_field).is_symbol }
|
37
|
-
|
38
|
-
it 'has the correct description' do
|
39
|
-
expect(passing_matcher.description).to match description
|
40
|
-
end
|
41
|
-
|
42
|
-
it 'returns proper result' do
|
43
|
-
expect(passing_matcher.matches? model).to eq true
|
44
|
-
expect(passing_matcher.does_not_match? model).to eq false
|
45
|
-
expect(failing_matcher.matches? model).to eq false
|
46
|
-
expect(failing_matcher.does_not_match? model).to eq true
|
47
|
-
end
|
48
|
-
end
|
49
|
-
|
50
|
-
context 'with one argument' do
|
51
|
-
let(:description) { /^be valid when #symbol_field is a symbol \(:some_symbol\)$/ }
|
52
|
-
|
53
|
-
let(:passing_matcher) { be_valid_when(:symbol_field).is_symbol :some_symbol }
|
54
|
-
let(:failing_matcher) { be_valid_when(:symbol_field).is_symbol :a }
|
55
|
-
|
56
|
-
it 'has the correct description' do
|
57
|
-
expect(passing_matcher.description).to match description
|
58
|
-
end
|
59
|
-
|
60
|
-
it 'returns proper result' do
|
61
|
-
expect(passing_matcher.matches? model).to eq true
|
62
|
-
expect(passing_matcher.does_not_match? model).to eq false
|
63
|
-
expect(failing_matcher.matches? model).to eq false
|
64
|
-
expect(failing_matcher.does_not_match? model).to eq true
|
65
|
-
end
|
66
|
-
|
67
|
-
it 'should fail if passed non symbol' do
|
68
|
-
expect { be_valid_when(:symbol_field).is_symbol 42 }.to raise_error ArgumentError
|
69
|
-
expect { be_valid_when(:symbol_field).is_symbol 42**42 }.to raise_error ArgumentError
|
70
|
-
expect { be_valid_when(:symbol_field).is_symbol 3.14 }.to raise_error ArgumentError
|
71
|
-
expect { be_valid_when(:symbol_field).is_symbol 42.to_c }.to raise_error ArgumentError
|
72
|
-
expect { be_valid_when(:symbol_field).is_symbol 42.to_r }.to raise_error ArgumentError
|
73
|
-
expect { be_valid_when(:symbol_field).is_symbol 'value' }.to raise_error ArgumentError
|
74
|
-
expect { be_valid_when(:symbol_field).is_symbol '42' }.to raise_error ArgumentError
|
75
|
-
expect { be_valid_when(:symbol_field).is_symbol(/^value$/) }.to raise_error ArgumentError
|
76
|
-
expect { be_valid_when(:symbol_field).is_symbol [1, 2] }.to raise_error ArgumentError
|
77
|
-
expect { be_valid_when(:symbol_field).is_symbol({}) }.to raise_error ArgumentError
|
78
|
-
end
|
79
|
-
end
|
80
|
-
end
|