45 lines
1.8 KiB
Ruby
45 lines
1.8 KiB
Ruby
|
# frozen_string_literal: true
|
||
|
|
||
|
require 'spec_helper'
|
||
|
require_migration!
|
||
|
|
||
|
RSpec.describe DisableJobTokenScopeWhenUnused do
|
||
|
let(:ci_cd_settings) { table(:project_ci_cd_settings) }
|
||
|
let(:links) { table(:ci_job_token_project_scope_links) }
|
||
|
let(:namespaces) { table(:namespaces) }
|
||
|
let(:projects) { table(:projects) }
|
||
|
|
||
|
let(:namespace) { namespaces.create!(name: 'test', path: 'path', type: 'Group') }
|
||
|
|
||
|
let(:project_with_used_scope) { projects.create!(namespace_id: namespace.id) }
|
||
|
let!(:used_scope_settings) { ci_cd_settings.create!(project_id: project_with_used_scope.id, job_token_scope_enabled: true) }
|
||
|
let(:target_project) { projects.create!(namespace_id: namespace.id) }
|
||
|
let!(:link) { links.create!(source_project_id: project_with_used_scope.id, target_project_id: target_project.id) }
|
||
|
|
||
|
let(:project_with_unused_scope) { projects.create!(namespace_id: namespace.id) }
|
||
|
let!(:unused_scope_settings) { ci_cd_settings.create!(project_id: project_with_unused_scope.id, job_token_scope_enabled: true) }
|
||
|
|
||
|
let(:project_with_disabled_scope) { projects.create!(namespace_id: namespace.id) }
|
||
|
let!(:disabled_scope_settings) { ci_cd_settings.create!(project_id: project_with_disabled_scope.id, job_token_scope_enabled: false) }
|
||
|
|
||
|
describe '#up' do
|
||
|
it 'sets job_token_scope_enabled to false for projects not having job token scope configured' do
|
||
|
migrate!
|
||
|
|
||
|
expect(unused_scope_settings.reload.job_token_scope_enabled).to be_falsey
|
||
|
end
|
||
|
|
||
|
it 'keeps the scope enabled for projects that are using it' do
|
||
|
migrate!
|
||
|
|
||
|
expect(used_scope_settings.reload.job_token_scope_enabled).to be_truthy
|
||
|
end
|
||
|
|
||
|
it 'keeps the scope disabled for projects having it disabled' do
|
||
|
migrate!
|
||
|
|
||
|
expect(disabled_scope_settings.reload.job_token_scope_enabled).to be_falsey
|
||
|
end
|
||
|
end
|
||
|
end
|