diff options
Diffstat (limited to 'spec/graphql/mutations/issues')
-rw-r--r-- | spec/graphql/mutations/issues/set_subscription_spec.rb | 36 | ||||
-rw-r--r-- | spec/graphql/mutations/issues/update_spec.rb | 30 |
2 files changed, 40 insertions, 26 deletions
diff --git a/spec/graphql/mutations/issues/set_subscription_spec.rb b/spec/graphql/mutations/issues/set_subscription_spec.rb index 9e05a136c0b..7e2c3d93c51 100644 --- a/spec/graphql/mutations/issues/set_subscription_spec.rb +++ b/spec/graphql/mutations/issues/set_subscription_spec.rb @@ -3,8 +3,38 @@ require 'spec_helper' RSpec.describe Mutations::Issues::SetSubscription do - it_behaves_like 'a subscribeable graphql resource' do - let_it_be(:resource) { create(:issue) } - let(:permission_name) { :update_issue } + let_it_be_with_reload(:project) { create(:project) } + let_it_be_with_reload(:resource) { create(:issue, project: project) } + let_it_be(:user) { create(:user) } + + specify { expect(described_class).to require_graphql_authorizations(:update_subscription) } + + context 'when user does not have access to the project' do + it_behaves_like 'a subscribeable not accessible graphql resource' + end + + context 'when user is developer member of the project' do + before do + project.add_developer(user) + end + + it_behaves_like 'a subscribeable graphql resource' + end + + context 'when the project is public' do + before do + project.update!(visibility_level: Gitlab::VisibilityLevel::PUBLIC) + end + + it_behaves_like 'a subscribeable graphql resource' + end + + context 'when the project is public but the issue is confidential' do + before do + project.update!(visibility_level: Gitlab::VisibilityLevel::PUBLIC) + resource.update!(confidential: true) + end + + it_behaves_like 'a subscribeable not accessible graphql resource' end end diff --git a/spec/graphql/mutations/issues/update_spec.rb b/spec/graphql/mutations/issues/update_spec.rb index 6d6a5b94219..bd780477658 100644 --- a/spec/graphql/mutations/issues/update_spec.rb +++ b/spec/graphql/mutations/issues/update_spec.rb @@ -69,33 +69,17 @@ RSpec.describe Mutations::Issues::Update do context 'when changing state' do let_it_be_with_refind(:issue) { create(:issue, project: project, state: :opened) } - before do - mutation_params[:state_event] = state_event - end - - context 'when state_event is close' do - let_it_be(:removable_label) { create(:label, project: project, remove_on_close: true, issues: [issue]) } + it 'closes issue' do + mutation_params[:state_event] = 'close' - let(:state_event) { 'close' } - - it 'closes issue' do - expect do - subject - issue.reload - end.to change(issue, :state).from('opened').to('closed').and( - change { issue.label_ids }.from([removable_label.id]).to([]) - ) - end + expect { subject }.to change { issue.reload.state }.from('opened').to('closed') end - context 'when state_event is reopen' do - let(:state_event) { 'reopen' } - - it 'reopens issue' do - issue.close + it 'reopens issue' do + issue.close + mutation_params[:state_event] = 'reopen' - expect { subject }.to change { issue.reload.state }.from('closed').to('opened') - end + expect { subject }.to change { issue.reload.state }.from('closed').to('opened') end end |