summaryrefslogtreecommitdiff
path: root/spec/graphql
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2020-03-26 12:07:48 +0000
committerGitLab Bot <gitlab-bot@gitlab.com>2020-03-26 12:07:48 +0000
commitef31adeb0fb9a02b2c6a4529ec4e38d7082a4b2b (patch)
treef0ee2b8bdffd7f91ad0b31388562c90825179585 /spec/graphql
parent7e019504f5ac6decde690565857238e7e59aa034 (diff)
downloadgitlab-ce-ef31adeb0fb9a02b2c6a4529ec4e38d7082a4b2b.tar.gz
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec/graphql')
-rw-r--r--spec/graphql/resolvers/projects/jira_imports_resolver_spec.rb78
-rw-r--r--spec/graphql/types/jira_import_type_spec.rb11
-rw-r--r--spec/graphql/types/project_type_spec.rb2
3 files changed, 90 insertions, 1 deletions
diff --git a/spec/graphql/resolvers/projects/jira_imports_resolver_spec.rb b/spec/graphql/resolvers/projects/jira_imports_resolver_spec.rb
new file mode 100644
index 00000000000..54d51292919
--- /dev/null
+++ b/spec/graphql/resolvers/projects/jira_imports_resolver_spec.rb
@@ -0,0 +1,78 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+describe Resolvers::Projects::JiraImportsResolver do
+ include GraphqlHelpers
+
+ describe '#resolve' do
+ let_it_be(:user) { create(:user) }
+ let_it_be(:jira_import_data) do
+ data = JiraImportData.new
+ data << JiraImportData::JiraProjectDetails.new('AA', 2.days.ago.strftime('%Y-%m-%d %H:%M:%S'), { user_id: user.id, name: user.name })
+ data << JiraImportData::JiraProjectDetails.new('BB', 5.days.ago.strftime('%Y-%m-%d %H:%M:%S'), { user_id: user.id, name: user.name })
+ data
+ end
+
+ context 'when project does not have Jira import data' do
+ let_it_be(:project) { create(:project, :private, import_data: nil) }
+
+ context 'when user cannot read Jira import data' do
+ context 'when anonymous user' do
+ it_behaves_like 'no jira import data present'
+ end
+
+ context 'when user developer' do
+ before do
+ project.add_developer(user)
+ end
+
+ it_behaves_like 'no jira import data present'
+ end
+ end
+
+ context 'when user can read Jira import data' do
+ before do
+ project.add_maintainer(user)
+ end
+
+ it_behaves_like 'no jira import data present'
+ end
+ end
+
+ context 'when project has Jira import data' do
+ let_it_be(:project) { create(:project, :private, import_data: jira_import_data) }
+
+ context 'when user cannot read Jira import data' do
+ context 'when anonymous user' do
+ it_behaves_like 'no jira import access'
+ end
+
+ context 'when user developer' do
+ before do
+ project.add_developer(user)
+ end
+
+ it_behaves_like 'no jira import access'
+ end
+ end
+
+ context 'when user can access Jira import data' do
+ before do
+ project.add_maintainer(user)
+ end
+
+ it 'returns Jira imports sorted ascending by scheduledAt time' do
+ imports = resolve_imports
+
+ expect(imports.size).to eq 2
+ expect(imports.map(&:key)).to eq %w(BB AA)
+ end
+ end
+ end
+ end
+
+ def resolve_imports(args = {}, context = { current_user: user })
+ resolve(described_class, obj: project, args: args, ctx: context)
+ end
+end
diff --git a/spec/graphql/types/jira_import_type_spec.rb b/spec/graphql/types/jira_import_type_spec.rb
new file mode 100644
index 00000000000..8448a120682
--- /dev/null
+++ b/spec/graphql/types/jira_import_type_spec.rb
@@ -0,0 +1,11 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+describe GitlabSchema.types['JiraImport'] do
+ it { expect(described_class.graphql_name).to eq('JiraImport') }
+
+ it 'has the expected fields' do
+ expect(described_class).to have_graphql_fields(:jira_project_key, :scheduled_at, :scheduled_by)
+ end
+end
diff --git a/spec/graphql/types/project_type_spec.rb b/spec/graphql/types/project_type_spec.rb
index 475ae9ff5f6..0c8be50ed90 100644
--- a/spec/graphql/types/project_type_spec.rb
+++ b/spec/graphql/types/project_type_spec.rb
@@ -24,7 +24,7 @@ describe GitlabSchema.types['Project'] do
namespace group statistics repository merge_requests merge_request issues
issue pipelines removeSourceBranchAfterMerge sentryDetailedError snippets
grafanaIntegration autocloseReferencedIssues suggestion_commit_message environments
- boards
+ boards jira_import_status jira_imports
]
expect(described_class).to include_graphql_fields(*expected_fields)