diff options
Diffstat (limited to 'spec/requests/api/graphql/mutations/work_items/create_spec.rb')
-rw-r--r-- | spec/requests/api/graphql/mutations/work_items/create_spec.rb | 21 |
1 files changed, 19 insertions, 2 deletions
diff --git a/spec/requests/api/graphql/mutations/work_items/create_spec.rb b/spec/requests/api/graphql/mutations/work_items/create_spec.rb index e7a0c7753fb..6abdaa2c850 100644 --- a/spec/requests/api/graphql/mutations/work_items/create_spec.rb +++ b/spec/requests/api/graphql/mutations/work_items/create_spec.rb @@ -47,6 +47,18 @@ RSpec.describe 'Create a work item' do ) end + context 'when input is invalid' do + let(:input) { { 'title' => '', 'workItemTypeId' => WorkItems::Type.default_by_type(:task).to_global_id.to_s } } + + it 'does not create and returns validation errors' do + expect do + post_graphql_mutation(mutation, current_user: current_user) + end.to not_change(WorkItem, :count) + + expect(graphql_mutation_response(:work_item_create)['errors']).to contain_exactly("Title can't be blank") + end + end + it_behaves_like 'has spam protection' do let(:mutation_class) { ::Mutations::WorkItems::Create } end @@ -56,8 +68,13 @@ RSpec.describe 'Create a work item' do stub_feature_flags(work_items: false) end - it_behaves_like 'a mutation that returns top-level errors', - errors: ["Field 'workItemCreate' doesn't exist on type 'Mutation'", "Variable $workItemCreateInput is declared by anonymous mutation but not used"] + it 'does not create the work item and returns an error' do + expect do + post_graphql_mutation(mutation, current_user: current_user) + end.to not_change(WorkItem, :count) + + expect(mutation_response['errors']).to contain_exactly('`work_items` feature flag disabled for this project') + end end end end |