summaryrefslogtreecommitdiff
path: root/spec/controllers/jira_connect/app_descriptor_controller_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/controllers/jira_connect/app_descriptor_controller_spec.rb')
-rw-r--r--spec/controllers/jira_connect/app_descriptor_controller_spec.rb81
1 files changed, 74 insertions, 7 deletions
diff --git a/spec/controllers/jira_connect/app_descriptor_controller_spec.rb b/spec/controllers/jira_connect/app_descriptor_controller_spec.rb
index 55bafa938a7..98f4db13a1d 100644
--- a/spec/controllers/jira_connect/app_descriptor_controller_spec.rb
+++ b/spec/controllers/jira_connect/app_descriptor_controller_spec.rb
@@ -4,20 +4,87 @@ require 'spec_helper'
RSpec.describe JiraConnect::AppDescriptorController do
describe '#show' do
+ let(:descriptor) do
+ json_response.deep_symbolize_keys
+ end
+
+ let(:logo_url) { %r{\Ahttp://test\.host/assets/gitlab_logo-\h+\.png\z} }
+
+ let(:common_module_properties) do
+ {
+ homeUrl: 'https://gitlab.com',
+ logoUrl: logo_url,
+ documentationUrl: 'https://docs.gitlab.com/ee/integration/jira/'
+ }
+ end
+
it 'returns JSON app descriptor' do
get :show
expect(response).to have_gitlab_http_status(:ok)
- expect(json_response).to include(
- 'baseUrl' => 'https://test.host/-/jira_connect',
- 'lifecycle' => {
- 'installed' => '/events/installed',
- 'uninstalled' => '/events/uninstalled'
+
+ expect(descriptor).to include(
+ name: Atlassian::JiraConnect.app_name,
+ description: kind_of(String),
+ key: Atlassian::JiraConnect.app_key,
+ baseUrl: 'https://test.host/-/jira_connect',
+ lifecycle: {
+ installed: '/events/installed',
+ uninstalled: '/events/uninstalled'
+ },
+ vendor: {
+ name: 'GitLab',
+ url: 'https://gitlab.com'
},
- 'links' => {
- 'documentation' => 'http://test.host/help/integration/jira_development_panel#gitlabcom-1'
+ links: {
+ documentation: 'http://test.host/help/integration/jira_development_panel#gitlabcom-1'
+ },
+ authentication: {
+ type: 'jwt'
+ },
+ scopes: %w(READ WRITE DELETE),
+ apiVersion: 1,
+ apiMigrations: {
+ 'context-qsh': true,
+ gdpr: true
}
)
+
+ expect(descriptor[:modules]).to include(
+ postInstallPage: {
+ key: 'gitlab-configuration',
+ name: { value: 'GitLab Configuration' },
+ url: '/subscriptions'
+ },
+ jiraDevelopmentTool: {
+ actions: {
+ createBranch: {
+ templateUrl: 'http://test.host/-/jira_connect/branches/new?issue_key={issue.key}&issue_summary={issue.summary}'
+ }
+ },
+ key: 'gitlab-development-tool',
+ application: { value: 'GitLab' },
+ name: { value: 'GitLab' },
+ url: 'https://gitlab.com',
+ logoUrl: logo_url,
+ capabilities: %w(branch commit pull_request)
+ },
+ jiraBuildInfoProvider: common_module_properties.merge(
+ actions: {},
+ name: { value: 'GitLab CI' },
+ key: 'gitlab-ci'
+ ),
+ jiraDeploymentInfoProvider: common_module_properties.merge(
+ actions: {},
+ name: { value: 'GitLab Deployments' },
+ key: 'gitlab-deployments'
+ ),
+ jiraFeatureFlagInfoProvider: common_module_properties.merge(
+ actions: {},
+ name: { value: 'GitLab Feature Flags' },
+ key: 'gitlab-feature-flags'
+ )
+ )
end
end
end