diff options
Diffstat (limited to 'spec/requests/api/graphql/multiplexed_queries_spec.rb')
-rw-r--r-- | spec/requests/api/graphql/multiplexed_queries_spec.rb | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/spec/requests/api/graphql/multiplexed_queries_spec.rb b/spec/requests/api/graphql/multiplexed_queries_spec.rb new file mode 100644 index 00000000000..844fd979285 --- /dev/null +++ b/spec/requests/api/graphql/multiplexed_queries_spec.rb @@ -0,0 +1,39 @@ +# frozen_string_literal: true +require 'spec_helper' + +describe 'Multiplexed queries' do + include GraphqlHelpers + + it 'returns responses for multiple queries' do + queries = [ + { query: 'query($text: String) { echo(text: $text) }', + variables: { 'text' => 'Hello' } }, + { query: 'query($text: String) { echo(text: $text) }', + variables: { 'text' => 'World' } } + ] + + post_multiplex(queries) + + first_response = json_response.first['data']['echo'] + second_response = json_response.last['data']['echo'] + + expect(first_response).to eq('nil says: Hello') + expect(second_response).to eq('nil says: World') + end + + it 'returns error and data combinations' do + queries = [ + { query: 'query($text: String) { broken query }' }, + { query: 'query working($text: String) { echo(text: $text) }', + variables: { 'text' => 'World' } } + ] + + post_multiplex(queries) + + first_response = json_response.first['errors'] + second_response = json_response.last['data']['echo'] + + expect(first_response).not_to be_empty + expect(second_response).to eq('nil says: World') + end +end |