|
9 | 9 | subject
|
10 | 10 | end
|
11 | 11 |
|
| 12 | + context 'setting a default' do |
| 13 | + let(:documentation) { subject.routes.first.route_params } |
| 14 | + |
| 15 | + context 'when the default value is truthy' do |
| 16 | + before do |
| 17 | + subject.params do |
| 18 | + optional :int, type: Integer, default: 42 |
| 19 | + end |
| 20 | + subject.get |
| 21 | + end |
| 22 | + |
| 23 | + it 'adds documentation about the default value' do |
| 24 | + expect(documentation).to have_key('int') |
| 25 | + expect(documentation['int']).to have_key(:default) |
| 26 | + expect(documentation['int'][:default]).to eq(42) |
| 27 | + end |
| 28 | + end |
| 29 | + |
| 30 | + context 'when the default value is false' do |
| 31 | + before do |
| 32 | + subject.params do |
| 33 | + optional :bool, type: Virtus::Attribute::Boolean, default: false |
| 34 | + end |
| 35 | + subject.get |
| 36 | + end |
| 37 | + |
| 38 | + it 'adds documentation about the default value' do |
| 39 | + expect(documentation).to have_key('bool') |
| 40 | + expect(documentation['bool']).to have_key(:default) |
| 41 | + expect(documentation['bool'][:default]).to eq(false) |
| 42 | + end |
| 43 | + end |
| 44 | + |
| 45 | + context 'when the default value is nil' do |
| 46 | + before do |
| 47 | + subject.params do |
| 48 | + optional :object, type: Object, default: nil |
| 49 | + end |
| 50 | + subject.get |
| 51 | + end |
| 52 | + |
| 53 | + it 'adds documentation about the default value' do |
| 54 | + expect(documentation).to have_key('object') |
| 55 | + expect(documentation['object']).to have_key(:default) |
| 56 | + expect(documentation['object'][:default]).to eq(nil) |
| 57 | + end |
| 58 | + end |
| 59 | + end |
| 60 | + |
| 61 | + context 'without a default' do |
| 62 | + before do |
| 63 | + subject.params do |
| 64 | + optional :object, type: Object |
| 65 | + end |
| 66 | + subject.get |
| 67 | + end |
| 68 | + |
| 69 | + it 'does not add documentation for the default value' do |
| 70 | + documentation = subject.routes.first.route_params |
| 71 | + expect(documentation).to have_key('object') |
| 72 | + expect(documentation['object']).not_to have_key(:default) |
| 73 | + end |
| 74 | + end |
| 75 | + |
12 | 76 | context 'setting description' do
|
13 | 77 | [:desc, :description].each do |description_type|
|
14 | 78 | it "allows setting #{description_type}" do
|
|
0 commit comments