|
133 | 133 | end
|
134 | 134 |
|
135 | 135 | describe 'EnumValidator' do
|
136 |
| - it "validates by object class" do |
137 |
| - validator = Apipie::Validator::EnumValidator.new(params_desc, ['first', 'second & third']) |
138 |
| - expect(validator.validate("first")).to be_truthy |
139 |
| - expect(validator.validate("second & third")).to be_truthy |
140 |
| - expect(validator.validate(1)).to be_falsey |
141 |
| - expect(validator.validate({ 1 => 1 })).to be_falsey |
| 136 | + context 'with an array' do |
| 137 | + subject(:validator) { Apipie::Validator::EnumValidator.new(params_desc, ['first', 'second & third']) } |
| 138 | + |
| 139 | + it "validates by object class" do |
| 140 | + expect(validator.validate("first")).to be_truthy |
| 141 | + expect(validator.validate("second & third")).to be_truthy |
| 142 | + expect(validator.validate(1)).to be_falsey |
| 143 | + expect(validator.validate({ 1 => 1 })).to be_falsey |
| 144 | + end |
| 145 | + |
| 146 | + it "has a valid description" do |
| 147 | + expect(validator.description).to eq('Must be one of: <code>first</code>, <code>second & third</code>.') |
| 148 | + end |
142 | 149 | end
|
143 | 150 |
|
144 |
| - it "has a valid description" do |
145 |
| - validator = Apipie::Validator::EnumValidator.new(params_desc, ['first', 'second & third']) |
146 |
| - expect(validator.description).to eq('Must be one of: <code>first</code>, <code>second & third</code>.') |
| 151 | + context 'with a callable' do |
| 152 | + subject(:validator) { Apipie::Validator::EnumValidator.new(params_desc, -> { ['first', 'second & third'] }) } |
| 153 | + |
| 154 | + it "validates by object class" do |
| 155 | + expect(validator.validate("first")).to be_truthy |
| 156 | + expect(validator.validate("second & third")).to be_truthy |
| 157 | + expect(validator.validate(1)).to be_falsey |
| 158 | + expect(validator.validate({ 1 => 1 })).to be_falsey |
| 159 | + end |
| 160 | + |
| 161 | + it "has a valid description" do |
| 162 | + expect(validator.description).to eq('Must be one of: <code>first</code>, <code>second & third</code>.') |
| 163 | + end |
147 | 164 | end
|
148 | 165 | end
|
149 | 166 | end
|
0 commit comments