summaryrefslogtreecommitdiff
path: root/spec/controllers/jira_connect/events_controller_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/controllers/jira_connect/events_controller_spec.rb')
-rw-r--r--spec/controllers/jira_connect/events_controller_spec.rb38
1 files changed, 38 insertions, 0 deletions
diff --git a/spec/controllers/jira_connect/events_controller_spec.rb b/spec/controllers/jira_connect/events_controller_spec.rb
index 80375a02b33..7da9eb7ac16 100644
--- a/spec/controllers/jira_connect/events_controller_spec.rb
+++ b/spec/controllers/jira_connect/events_controller_spec.rb
@@ -101,6 +101,14 @@ RSpec.describe JiraConnect::EventsController do
expect(response).to have_gitlab_http_status(:ok)
end
+ it 'uses the JiraConnectInstallations::UpdateService' do
+ expect_next_instance_of(JiraConnectInstallations::UpdateService, installation, anything) do |update_service|
+ expect(update_service).to receive(:execute).and_call_original
+ end
+
+ subject
+ end
+
context 'when parameters include a new shared secret and base_url' do
let(:shared_secret) { 'new_secret' }
let(:base_url) { 'https://new_test.atlassian.net' }
@@ -125,6 +133,36 @@ RSpec.describe JiraConnect::EventsController do
end
end
end
+
+ shared_examples 'generates JWT validation claims' do
+ specify do
+ expect_next_instance_of(Atlassian::JiraConnect::Jwt::Asymmetric, anything, expected_claims) do |asymmetric_jwt|
+ allow(asymmetric_jwt).to receive(:valid?).and_return(true)
+ end
+
+ subject
+ end
+ end
+
+ context 'when enforce_jira_base_url_https' do
+ before do
+ allow(Gitlab.config.jira_connect).to receive(:enforce_jira_base_url_https).and_return(true)
+ end
+
+ let(:expected_claims) { { aud: "https://test.host/-/jira_connect", iss: anything, qsh: anything } }
+
+ it_behaves_like 'generates JWT validation claims'
+ end
+
+ context 'when not enforce_jira_base_url_https' do
+ before do
+ allow(Gitlab.config.jira_connect).to receive(:enforce_jira_base_url_https).and_return(false)
+ end
+
+ let(:expected_claims) { { aud: "http://test.host/-/jira_connect", iss: anything, qsh: anything } }
+
+ it_behaves_like 'generates JWT validation claims'
+ end
end
describe '#uninstalled' do