diff options
Diffstat (limited to 'spec/graphql/types/base_argument_spec.rb')
-rw-r--r-- | spec/graphql/types/base_argument_spec.rb | 38 |
1 files changed, 32 insertions, 6 deletions
diff --git a/spec/graphql/types/base_argument_spec.rb b/spec/graphql/types/base_argument_spec.rb index 61e0179ff21..8f5f2e08799 100644 --- a/spec/graphql/types/base_argument_spec.rb +++ b/spec/graphql/types/base_argument_spec.rb @@ -3,15 +3,41 @@ require 'spec_helper' RSpec.describe Types::BaseArgument do - include_examples 'Gitlab-style deprecations' do - let_it_be(:field) do - Types::BaseField.new(name: 'field', type: String, null: true) + let_it_be(:field) do + Types::BaseField.new(name: 'field', type: String, null: true) + end + + let(:base_args) { { name: 'test', type: String, required: false, owner: field } } + + def subject(args = {}) + described_class.new(**base_args.merge(args)) + end + + include_examples 'Gitlab-style deprecations' + + describe 'required argument declarations' do + it 'accepts nullable, required arguments' do + arguments = base_args.merge({ required: :nullable }) + + expect { subject(arguments) }.not_to raise_error + end + + it 'accepts required, non-nullable arguments' do + arguments = base_args.merge({ required: true }) + + expect { subject(arguments) }.not_to raise_error + end + + it 'accepts non-required arguments' do + arguments = base_args.merge({ required: false }) + + expect { subject(arguments) }.not_to raise_error end - let(:base_args) { { name: 'test', type: String, required: false, owner: field } } + it 'accepts no required argument declaration' do + arguments = base_args - def subject(args = {}) - described_class.new(**base_args.merge(args)) + expect { subject(arguments) }.not_to raise_error end end end |