Commit 879d1d26 authored by pburdette's avatar pburdette

Add authorization test

Test for auth on the project
jobs resolver.
parent f07be71b
...@@ -4771,7 +4771,7 @@ An edge in a connection. ...@@ -4771,7 +4771,7 @@ An edge in a connection.
| `iterations` | [`IterationConnection`](#iterationconnection) | Find iterations. | | `iterations` | [`IterationConnection`](#iterationconnection) | Find iterations. |
| `jiraImportStatus` | [`String`](#string) | Status of Jira import background job of the project. | | `jiraImportStatus` | [`String`](#string) | Status of Jira import background job of the project. |
| `jiraImports` | [`JiraImportConnection`](#jiraimportconnection) | Jira imports into the project. | | `jiraImports` | [`JiraImportConnection`](#jiraimportconnection) | Jira imports into the project. |
| `jobs` | [`CiJobConnection`](#cijobconnection) | Jobs of a project, only jobs of a single project can be requested at a time. | | `jobs` | [`CiJobConnection`](#cijobconnection) | Jobs of a single project. |
| `jobsEnabled` | [`Boolean`](#boolean) | Indicates if CI/CD pipeline jobs are enabled for the current user. | | `jobsEnabled` | [`Boolean`](#boolean) | Indicates if CI/CD pipeline jobs are enabled for the current user. |
| `label` | [`Label`](#label) | A label available on this project. | | `label` | [`Label`](#label) | A label available on this project. |
| `labels` | [`LabelConnection`](#labelconnection) | Labels available on this project. | | `labels` | [`LabelConnection`](#labelconnection) | Labels available on this project. |
......
...@@ -5,21 +5,26 @@ require 'spec_helper' ...@@ -5,21 +5,26 @@ require 'spec_helper'
RSpec.describe Resolvers::ProjectJobsResolver do RSpec.describe Resolvers::ProjectJobsResolver do
include GraphqlHelpers include GraphqlHelpers
let_it_be(:project) { create(:project, :repository, :public) } let_it_be(:project) { create(:project, :repository) }
let_it_be(:irrelevant_project) { create(:project, :repository, :public) } let_it_be(:irrelevant_project) { create(:project, :repository) }
let_it_be(:pipeline) { create(:ci_pipeline, project: project) } let_it_be(:pipeline) { create(:ci_pipeline, project: project) }
let_it_be(:irrelevant_pipeline) { create(:ci_pipeline, project: irrelevant_project) } let_it_be(:irrelevant_pipeline) { create(:ci_pipeline, project: irrelevant_project) }
let_it_be(:build_one) { create(:ci_build, :success, name: 'Build One', pipeline: pipeline) }
let_it_be(:build_two) { create(:ci_build, :success, name: 'Build Two', pipeline: pipeline) }
let_it_be(:build_three) { create(:ci_build, :failed, name: 'Build Three', pipeline: pipeline) }
let(:current_user) { create(:user) }
let(:build_one) { create(:ci_build, :success, name: 'Build One', pipeline: pipeline) }
let(:build_two) { create(:ci_build, :success, name: 'Build Two', pipeline: pipeline) }
let(:build_three) { create(:ci_build, :failed, name: 'Build Three', pipeline: pipeline) }
let(:irrelevant_build) { create(:ci_build, name: 'Irrelevant Build', pipeline: irrelevant_pipeline)} let(:irrelevant_build) { create(:ci_build, name: 'Irrelevant Build', pipeline: irrelevant_pipeline)}
let(:args) { {} } let(:args) { {} }
let(:current_user) { create(:user) }
subject { resolve_jobs(args) } subject { resolve_jobs(args) }
describe '#resolve' do describe '#resolve' do
context 'with authorized user' do
before do
project.add_developer(current_user)
end
context 'with statuses argument' do context 'with statuses argument' do
let(:args) { { statuses: [Types::Ci::JobStatusEnum.coerce_isolated_input('SUCCESS')] } } let(:args) { { statuses: [Types::Ci::JobStatusEnum.coerce_isolated_input('SUCCESS')] } }
...@@ -31,6 +36,13 @@ RSpec.describe Resolvers::ProjectJobsResolver do ...@@ -31,6 +36,13 @@ RSpec.describe Resolvers::ProjectJobsResolver do
end end
end end
context 'with unauthorized user' do
let(:current_user) { nil }
it { is_expected.to be_nil }
end
end
private private
def resolve_jobs(args = {}, context = { current_user: current_user }) def resolve_jobs(args = {}, context = { current_user: current_user })
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment