debian-mirror-gitlab/spec/graphql/mutations/pages/mark_onboarding_complete_spec.rb
2022-08-13 15:12:31 +05:30

57 lines
1.5 KiB
Ruby

# frozen_string_literal: true
require 'spec_helper'
RSpec.describe Mutations::Pages::MarkOnboardingComplete do
let_it_be(:project) { create(:project, :public, :repository) }
let_it_be(:developer) { create(:user) }
let_it_be(:owner) { create(:user) }
let(:mutation) { described_class.new(object: nil, context: { current_user: current_user }, field: nil) }
let(:mutation_arguments) do
{
project_path: project.full_path
}
end
before_all do
project.add_owner(owner)
project.add_developer(developer)
end
describe '#resolve' do
subject(:resolve) do
mutation.resolve(**mutation_arguments)
end
context 'when the current user has access to update pages' do
let(:current_user) { owner }
it 'calls mark_pages_onboarding_complete on the project' do
allow_next_instance_of(::Project) do |project|
expect(project).to receive(:mark_pages_onboarding_complete)
end
end
it 'returns onboarding_complete state' do
expect(resolve).to include(onboarding_complete: true)
end
it 'returns no errors' do
expect(resolve).to include(errors: [])
end
end
context "when the current user doesn't have access to update pages" do
let(:current_user) { developer }
it 'raises an error' do
expect { subject }.to raise_error(
Gitlab::Graphql::Errors::ResourceNotAvailable,
Gitlab::Graphql::Authorize::AuthorizeResource::RESOURCE_ACCESS_ERROR
)
end
end
end
end