|
100 | 100 | end |
101 | 101 | end |
102 | 102 |
|
| 103 | + describe 'validations' do |
| 104 | + subject { XeroRuby::ApiClient.new(config: {}, credentials: credentials) } |
| 105 | + |
| 106 | + context 'when the client id is not valid' do |
| 107 | + let(:credentials) { { client_id: '' } } |
| 108 | + |
| 109 | + it { is_expected.not_to be_client_id_valid } |
| 110 | + end |
| 111 | + |
| 112 | + context 'when the client id is valid' do |
| 113 | + let(:credentials) { { client_id: 'AAAAAA9E3FC416CF84283851A1BB7185' } } |
| 114 | + |
| 115 | + it { is_expected.to be_client_id_valid } |
| 116 | + end |
| 117 | + end |
| 118 | + |
103 | 119 | describe 'api_client helper functions' do |
104 | 120 | let(:api_client) { XeroRuby::ApiClient.new } |
105 | 121 | let(:token_set) { {'access_token': 'eyx.authorization.data', 'id_token': 'eyx.authentication.data', 'refresh_token': 'REFRESHMENTS'} } |
|
114 | 130 | }] |
115 | 131 | } |
116 | 132 |
|
117 | | - before do |
| 133 | + before do |
118 | 134 | allow(api_client).to receive(:token_request).and_return(token_set) |
119 | 135 | end |
120 | 136 |
|
|
153 | 169 |
|
154 | 170 | it "sets and resets the base url based on endpoint usage of the same client" do |
155 | 171 | expect(api_client).to receive(:call_api).and_return(connections) |
156 | | - |
| 172 | + |
157 | 173 | api_client.accounting_api |
158 | 174 | expect(api_client.config.base_url).to eq('https://api.xero.com/api.xro/2.0') |
159 | | - |
| 175 | + |
160 | 176 | api_client.asset_api |
161 | 177 | expect(api_client.config.base_url).to eq('https://api.xero.com/assets.xro/1.0') |
162 | | - |
| 178 | + |
163 | 179 | api_client.project_api |
164 | 180 | expect(api_client.config.base_url).to eq('https://api.xero.com/projects.xro/2.0/') |
165 | | - |
| 181 | + |
166 | 182 | api_client.files_api |
167 | 183 | expect(api_client.config.base_url).to eq('https://api.xero.com/files.xro/1.0/') |
168 | | - |
| 184 | + |
169 | 185 | api_client.payroll_au_api |
170 | 186 | expect(api_client.config.base_url).to eq('https://api.xero.com/payroll.xro/1.0/') |
171 | | - |
| 187 | + |
172 | 188 | api_client.payroll_nz_api |
173 | 189 | expect(api_client.config.base_url).to eq('https://api.xero.com/payroll.xro/2.0/') |
174 | | - |
| 190 | + |
175 | 191 | api_client.payroll_uk_api |
176 | 192 | expect(api_client.config.base_url).to eq('https://api.xero.com/payroll.xro/2.0/') |
177 | 193 |
|
178 | 194 | api_client.finance_api |
179 | 195 | expect(api_client.config.base_url).to eq('https://api.xero.com/finance.xro/1.0/') |
180 | | - |
| 196 | + |
181 | 197 | api_client.connections |
182 | | - expect(api_client.config.base_url).to eq('https://api.xero.com') |
| 198 | + expect(api_client.config.base_url).to eq('https://api.xero.com') |
183 | 199 | end |
184 | 200 |
|
185 | 201 | it "does not mutate the original opts hash" do |
|
282 | 298 | } |
283 | 299 | ] |
284 | 300 | } |
285 | | - |
| 301 | + |
286 | 302 | json_after = { |
287 | 303 | "LineItems":[ |
288 | 304 | { |
|
486 | 502 |
|
487 | 503 | let(:tkn_set_1){{'id_token': "abc.123.1", 'access_token': "xxx.yyy.zzz.111"}} |
488 | 504 | let(:tkn_set_2){{'id_token': "efg.456.2", 'access_token': "xxx.yyy.zzz.222"}} |
489 | | - |
| 505 | + |
490 | 506 | describe 'when configuration is changed, other instantiations of the client are not affected' do |
491 | 507 | it 'applies to #set_access_token' do |
492 | 508 | expect(api_client_1.access_token).to eq(nil) |
|
522 | 538 | expect(api_client_2.id_token).to eq("id_token_2") |
523 | 539 | end |
524 | 540 |
|
525 | | - it 'applies to #set_token_set' do |
| 541 | + it 'applies to #set_token_set' do |
526 | 542 | expect(api_client_1.token_set).to eq(nil) |
527 | 543 | expect(api_client_2.token_set).to eq(nil) |
528 | 544 |
|
|
534 | 550 | expect(api_client_1.token_set).to eq(tkn_set_1.with_indifferent_access) |
535 | 551 | expect(api_client_2.token_set).to eq(tkn_set_2.with_indifferent_access) |
536 | 552 | end |
537 | | - |
| 553 | + |
538 | 554 | it 'applies to #base_url' do |
539 | 555 | expect(api_client_1.config.base_url).to eq(nil) |
540 | 556 | expect(api_client_2.config.base_url).to eq(nil) |
541 | 557 |
|
542 | 558 | api_client_1.accounting_api |
543 | 559 | expect(api_client_1.config.base_url).to eq(api_client_1.config.accounting_url) |
544 | 560 | expect(api_client_2.config.base_url).to eq(nil) |
545 | | - |
| 561 | + |
546 | 562 | api_client_2.files_api |
547 | 563 | expect(api_client_1.config.base_url).to eq(api_client_1.config.accounting_url) |
548 | 564 | expect(api_client_2.config.base_url).to eq(api_client_1.config.files_url) |
|
0 commit comments