74702f0e0e
Previously this behaviour was only available to group and instance-level clusters, as some project clusters relied on Kubernetes credentials being passed through to the runner instead of having their resources managed by GitLab (which is not available when using JIT). These clusters have been migrated to unmanaged, so resources can be created on demand for the remaining managed clusters.
36 lines
1 KiB
Ruby
36 lines
1 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
require 'spec_helper'
|
|
|
|
describe ClusterProvisionWorker do
|
|
describe '#perform' do
|
|
context 'when provider type is gcp' do
|
|
let(:cluster) { create(:cluster, provider_type: :gcp, provider_gcp: provider) }
|
|
let(:provider) { create(:cluster_provider_gcp, :scheduled) }
|
|
|
|
it 'provision a cluster' do
|
|
expect_any_instance_of(Clusters::Gcp::ProvisionService).to receive(:execute)
|
|
|
|
described_class.new.perform(cluster.id)
|
|
end
|
|
end
|
|
|
|
context 'when provider type is user' do
|
|
let(:cluster) { create(:cluster, :provided_by_user) }
|
|
|
|
it 'does not provision a cluster' do
|
|
expect_any_instance_of(Clusters::Gcp::ProvisionService).not_to receive(:execute)
|
|
|
|
described_class.new.perform(cluster.id)
|
|
end
|
|
end
|
|
|
|
context 'when cluster does not exist' do
|
|
it 'does not provision a cluster' do
|
|
expect_any_instance_of(Clusters::Gcp::ProvisionService).not_to receive(:execute)
|
|
|
|
described_class.new.perform(123)
|
|
end
|
|
end
|
|
end
|
|
end
|