|
2 | 2 |
|
3 | 3 | RSpec.describe OnStrum::Logs::Configuration do |
4 | 4 | describe 'defined constants' do |
5 | | - it { expect(described_class).to be_const_defined(:INCOMPLETE_CONFIG) } |
6 | 5 | it { expect(described_class).to be_const_defined(:SETTERS) } |
7 | 6 | it { expect(described_class).to be_const_defined(:BUILTIN_FIELDS_DEFAULT_NAMES) } |
8 | 7 | end |
9 | 8 |
|
10 | 9 | describe '.new' do |
11 | 10 | let(:custom_formatter) { use_formatter(:custom) } |
12 | 11 | let(:detailed_formatter) { true } |
13 | | - let(:service_name) { random_service_name } |
14 | | - let(:service_version) { random_semver } |
| 12 | + let(:root_fields) { random_root_fields } |
15 | 13 | let(:field_name_level) { random_field_name } |
16 | 14 | let(:field_name_time) { random_field_name } |
17 | 15 | let(:field_name_message) { random_field_name } |
|
24 | 22 | create_configuration( |
25 | 23 | custom_formatter: custom_formatter, |
26 | 24 | detailed_formatter: detailed_formatter, |
27 | | - service_name: service_name, |
28 | | - service_version: service_version, |
| 25 | + root_fields: root_fields, |
29 | 26 | field_name_level: field_name_level, |
30 | 27 | field_name_time: field_name_time, |
31 | 28 | field_name_message: field_name_message, |
|
38 | 35 | it 'creates configuration instance' do |
39 | 36 | expect(configuration.custom_formatter).to eq(custom_formatter) |
40 | 37 | expect(configuration.detailed_formatter).to eq(detailed_formatter) |
41 | | - expect(configuration.service_name).to eq(service_name) |
42 | | - expect(configuration.service_version).to eq(service_version) |
| 38 | + expect(configuration.root_fields).to eq(root_fields) |
43 | 39 | expect(configuration.field_name_level).to eq(field_name_level) |
44 | 40 | expect(configuration.field_name_time).to eq(field_name_time) |
45 | 41 | expect(configuration.field_name_message).to eq(field_name_message) |
46 | 42 | expect(configuration.field_name_context).to eq(field_name_context) |
47 | 43 | expect(configuration.field_name_exception_message).to eq(field_name_exception_message) |
48 | 44 | expect(configuration.field_name_exception_stack_trace).to eq(field_name_exception_stack_trace) |
49 | | - expect(configuration).to be_complete |
50 | 45 | end |
51 | 46 | end |
52 | 47 |
|
|
62 | 57 |
|
63 | 58 | let(:invalid_argument) { 42 } |
64 | 59 |
|
65 | | - context 'when argument service_name= invalid' do |
66 | | - subject(:configuration) do |
67 | | - create_configuration(service_name: invalid_argument, service_version: random_semver) |
68 | | - end |
69 | | - |
70 | | - let(:expected_error_message) { "#{invalid_argument} is not a valid service_name=" } |
71 | | - |
72 | | - include_examples 'raies argument error' |
73 | | - end |
74 | | - |
75 | | - context 'when argument service_version= invalid' do |
76 | | - subject(:configuration) do |
77 | | - create_configuration(service_name: random_service_name, service_version: invalid_argument) |
78 | | - end |
| 60 | + context 'when argument root_fields= invalid' do |
| 61 | + subject(:configuration) { create_configuration(root_fields: invalid_argument) } |
79 | 62 |
|
80 | | - let(:expected_error_message) { "#{invalid_argument} is not a valid service_version=" } |
| 63 | + let(:expected_error_message) { "#{invalid_argument} is not a valid root_fields=" } |
81 | 64 |
|
82 | 65 | include_examples 'raies argument error' |
83 | 66 | end |
84 | 67 |
|
85 | 68 | context 'when argument custom_formatter= invalid' do |
86 | | - subject(:configuration) do |
87 | | - create_configuration( |
88 | | - custom_formatter: invalid_argument, |
89 | | - service_name: random_service_name, |
90 | | - service_version: random_semver |
91 | | - ) |
92 | | - end |
| 69 | + subject(:configuration) { create_configuration(custom_formatter: invalid_argument) } |
93 | 70 |
|
94 | 71 | let(:expected_error_message) { "#{invalid_argument} is not a valid custom_formatter=" } |
95 | 72 |
|
96 | 73 | include_examples 'raies argument error' |
97 | 74 | end |
98 | 75 |
|
99 | | - OnStrum::Logs::Configuration::SETTERS[3..-1].each do |field_name_setter| |
| 76 | + OnStrum::Logs::Configuration::SETTERS[2..-1].each do |field_name_setter| |
100 | 77 | context "when argument #{field_name_setter}= invalid" do |
101 | | - subject(:configuration) do |
102 | | - create_configuration( |
103 | | - service_name: random_service_name, |
104 | | - service_version: random_semver, |
105 | | - field_name_setter => invalid_argument |
106 | | - ) |
107 | | - end |
| 78 | + subject(:configuration) { create_configuration(field_name_setter => invalid_argument) } |
108 | 79 |
|
109 | 80 | let(:expected_error_message) { "#{invalid_argument} is not a valid #{field_name_setter}=" } |
110 | 81 |
|
|
117 | 88 | subject(:configuration) { create_configuration } |
118 | 89 |
|
119 | 90 | it 'returns incomplete configuration instance' do |
120 | | - expect(configuration.service_name).to be_nil |
121 | | - expect(configuration.service_version).to be_nil |
| 91 | + expect(configuration.root_fields).to be_empty |
122 | 92 | expect(configuration.custom_formatter).to be_nil |
123 | 93 | expect(configuration.field_name_level).to eq(:level) |
124 | 94 | expect(configuration.field_name_time).to eq(:time) |
|
127 | 97 | expect(configuration.field_name_exception_message).to eq(:message) |
128 | 98 | expect(configuration.field_name_exception_stack_trace).to eq(:stack_trace) |
129 | 99 | expect(configuration.detailed_formatter).to be_nil |
130 | | - expect(configuration).not_to be_complete |
131 | | - end |
132 | | - end |
133 | | - end |
134 | | - |
135 | | - describe '#complete?' do |
136 | | - context 'when required attributes missed' do |
137 | | - shared_examples 'incomplete configuration' do |
138 | | - it { expect(configuration).not_to be_complete } |
139 | | - end |
140 | | - |
141 | | - context 'when service_name is nil' do |
142 | | - subject(:configuration) { create_configuration } |
143 | | - |
144 | | - it_behaves_like 'incomplete configuration' |
145 | | - end |
146 | | - |
147 | | - context 'when service_version is nil' do |
148 | | - subject(:configuration) { create_configuration(service_name: random_service_name) } |
149 | | - |
150 | | - it_behaves_like 'incomplete configuration' |
151 | | - end |
152 | | - end |
153 | | - |
154 | | - context 'when required attributes not missed' do |
155 | | - subject(:configuration) do |
156 | | - create_configuration(service_name: random_service_name, service_version: random_semver) |
157 | 100 | end |
158 | | - |
159 | | - it { expect(configuration).to be_complete } |
160 | 101 | end |
161 | 102 | end |
162 | 103 |
|
|
201 | 142 | describe '#log_attributes_order' do |
202 | 143 | subject(:log_attributes_order) { configuration_instance.log_attributes_order } |
203 | 144 |
|
| 145 | + let(:root_fields) { random_root_fields } |
204 | 146 | let(:configuration_instance) do |
205 | 147 | create_configuration( |
| 148 | + root_fields: root_fields, |
206 | 149 | field_name_level: random_field_name, |
207 | 150 | field_name_time: random_field_name, |
208 | 151 | field_name_message: random_field_name, |
|
217 | 160 | configuration_instance.field_name_time, |
218 | 161 | configuration_instance.field_name_message, |
219 | 162 | configuration_instance.field_name_context, |
220 | | - :service_name, |
221 | | - :service_version |
| 163 | + *root_fields.keys |
222 | 164 | ] |
223 | 165 | ) |
224 | 166 | end |
|
0 commit comments