summaryrefslogtreecommitdiff
path: root/spec/graphql/types/base_argument_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/graphql/types/base_argument_spec.rb')
-rw-r--r--spec/graphql/types/base_argument_spec.rb38
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