diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2023-06-08 21:08:59 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2023-06-08 21:08:59 +0300 |
commit | 8b0d3151ae81cef695647771d1781c535d6f6cf5 (patch) | |
tree | f58d72ada21f6f7598a1e9f69fc80cdbbae8f2b6 /spec/requests | |
parent | ec9dd96cd876d8778bb757a1e1e0252a58fdcbbb (diff) |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec/requests')
-rw-r--r-- | spec/requests/api/graphql/subscriptions/work_item_updated_spec.rb | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/spec/requests/api/graphql/subscriptions/work_item_updated_spec.rb b/spec/requests/api/graphql/subscriptions/work_item_updated_spec.rb new file mode 100644 index 00000000000..6c0962e7ec0 --- /dev/null +++ b/spec/requests/api/graphql/subscriptions/work_item_updated_spec.rb @@ -0,0 +1,43 @@ +# frozen_string_literal: true + +require "spec_helper" + +RSpec.describe Subscriptions::WorkItemUpdated, feature_category: :team_planning do + include GraphqlHelpers + include Graphql::Subscriptions::WorkItems::Helper + + let_it_be(:reporter) { create(:user) } + let_it_be(:project) { create(:project) } + let_it_be(:task) { create(:work_item, :task, project: project) } + + let(:current_user) { nil } + let(:subscribe) { work_item_subscription('workItemUpdated', task, current_user) } + let(:updated_work_item) { graphql_dig_at(graphql_data(response[:result]), :workItemUpdated) } + + before do + stub_const('GitlabSchema', Graphql::Subscriptions::ActionCable::MockGitlabSchema) + Graphql::Subscriptions::ActionCable::MockActionCable.clear_mocks + project.add_reporter(reporter) + end + + subject(:response) do + subscription_response do + GraphqlTriggers.work_item_updated(task) + end + end + + context 'when user is unauthorized' do + it 'does not receive any data' do + expect(response).to be_nil + end + end + + context 'when user is authorized' do + let(:current_user) { reporter } + + it 'receives updated work_item data' do + expect(updated_work_item['id']).to eq(task.to_gid.to_s) + expect(updated_work_item['iid']).to eq(task.iid.to_s) + end + end +end |