|
2 | 2 |
|
3 | 3 | require 'spec_helper'
|
4 | 4 |
|
5 |
| -RSpec.describe "Countries" do |
6 |
| - include_examples 'query is successful', :countries do |
7 |
| - let(:country_nodes) { subject.data.countries.nodes } |
8 |
| - let(:state_nodes) { country_nodes.map { |c| c.states.nodes }.flatten } |
9 |
| - |
10 |
| - before do |
11 |
| - create_list(:state, 2) |
12 |
| - create_list(:state, 2, country_iso: 'IT') |
| 5 | +RSpec.describe_query :countries do |
| 6 | + connection_field :countries, query: :countries, freeze_date: true do |
| 7 | + context 'when countries does not exists' do |
| 8 | + it { expect(subject.data.countries.nodes).to be_empty } |
13 | 9 | end
|
14 | 10 |
|
15 |
| - it { expect(country_nodes).to be_present } |
| 11 | + context 'when countries exists' do |
| 12 | + let!(:country) { create(:country, id: 1) } |
16 | 13 |
|
17 |
| - it { expect(state_nodes).to be_present } |
| 14 | + before { create(:country, id: 2, iso: 'IT') } |
| 15 | + |
| 16 | + it { is_expected.to match_response(:countries) } |
| 17 | + |
| 18 | + connection_field :states, query: 'countries/states' do |
| 19 | + context 'when states does not exists' do |
| 20 | + it { is_expected.to match_response('countries/empty_states') } |
| 21 | + end |
| 22 | + |
| 23 | + context 'when states exists' do |
| 24 | + before do |
| 25 | + create(:state, id: 1, country: country) |
| 26 | + create(:state, id: 2, country: country, state_code: 'CA') |
| 27 | + end |
| 28 | + |
| 29 | + it { is_expected.to match_response('countries/states') } |
| 30 | + end |
| 31 | + end |
| 32 | + end |
18 | 33 | end
|
19 | 34 | end
|
0 commit comments