|
1 | 1 | # frozen_string_literal: true |
2 | 2 |
|
3 | 3 | RSpec.describe OpenapiFirst::Configuration do |
4 | | - describe '#after' do |
| 4 | + describe '#after_...' do |
5 | 5 | it 'adds a hook' do |
6 | 6 | config = OpenapiFirst::Configuration.new |
7 | 7 | called = [] |
8 | 8 | config.after_request_validation do |request| |
9 | 9 | called << request |
10 | 10 | end |
11 | 11 |
|
12 | | - config.hooks[:after_request_validation].each { |hook| hook.call('request') } |
| 12 | + config.after_request_validation.each { |hook| hook.call('request') } |
13 | 13 | expect(called).to eq(%w[request]) |
14 | 14 | end |
15 | 15 |
|
|
18 | 18 | config.after_request_validation { _1 } |
19 | 19 | config.after_request_validation { _1 } |
20 | 20 |
|
21 | | - expect(config.hooks[:after_request_validation].size).to eq(2) |
| 21 | + expect(config.after_request_validation.size).to eq(2) |
22 | 22 | end |
23 | 23 | end |
24 | 24 |
|
|
54 | 54 | end |
55 | 55 | end |
56 | 56 |
|
57 | | - describe '#clone' do |
| 57 | + describe '#child' do |
58 | 58 | it 'clones actions' do |
59 | 59 | config = OpenapiFirst::Configuration.new |
60 | 60 | config.after_request_validation { |request| request } |
61 | | - expect(config.hooks[:after_request_validation].size).to eq(1) |
62 | | - cloned = config.clone |
| 61 | + expect(config.after_request_validation.size).to eq(1) |
| 62 | + cloned = config.child |
63 | 63 | cloned.after_request_validation { |request| request } |
64 | | - expect(cloned.hooks[:after_request_validation].size).to eq(2) |
65 | | - expect(config.hooks[:after_request_validation].size).to eq(1) |
| 64 | + expect(cloned.after_request_validation.size).to eq(2) |
| 65 | + expect(config.after_request_validation.size).to eq(1) |
66 | 66 | end |
67 | 67 |
|
68 | 68 | it 'clones empty configs' do |
69 | 69 | config = OpenapiFirst::Configuration.new |
70 | | - expect(config.hooks.values.all?(&:empty?)).to be(true) |
71 | | - cloned = config.clone |
72 | | - expect(cloned.hooks.values.all?(&:empty?)).to be(true) |
| 70 | + expect(config.after_request_validation.to_a).to be_empty |
| 71 | + cloned = config.child |
| 72 | + expect(cloned.after_request_validation.to_a).to be_empty |
| 73 | + end |
| 74 | + |
| 75 | + it 'allows adding hooks to the parent config after cloning' do |
| 76 | + parent = OpenapiFirst::Configuration.new |
| 77 | + parent.after_request_validation { |request| request } |
| 78 | + |
| 79 | + child = parent.child |
| 80 | + |
| 81 | + expect(child.after_request_validation.size).to eq(1) |
| 82 | + parent.after_request_validation { |request| request } |
| 83 | + expect(parent.after_request_validation.size).to eq(2) |
| 84 | + expect(child.after_request_validation.size).to eq(2) |
73 | 85 | end |
74 | 86 | end |
75 | 87 | end |
0 commit comments