1# frozen_string_literal: true 2 3require 'spec_helper' 4 5RSpec.describe DeployTokenPolicy do 6 let(:current_user) { create(:user) } 7 let(:project) { create(:project) } 8 let(:deploy_token) { create(:deploy_token, projects: [project]) } 9 10 subject { described_class.new(current_user, deploy_token) } 11 12 describe 'creating a deploy key' do 13 context 'when user is maintainer' do 14 before do 15 project.add_maintainer(current_user) 16 end 17 18 it { is_expected.to be_allowed(:create_deploy_token) } 19 end 20 21 context 'when user is not maintainer' do 22 before do 23 project.add_developer(current_user) 24 end 25 26 it { is_expected.to be_disallowed(:create_deploy_token) } 27 end 28 end 29 30 describe 'updating a deploy key' do 31 context 'when user is maintainer' do 32 before do 33 project.add_maintainer(current_user) 34 end 35 36 it { is_expected.to be_allowed(:update_deploy_token) } 37 end 38 39 context 'when user is not maintainer' do 40 before do 41 project.add_developer(current_user) 42 end 43 44 it { is_expected.to be_disallowed(:update_deploy_token) } 45 end 46 end 47end 48