diff options
Diffstat (limited to 'spec/lib/gitlab/serverless/service_spec.rb')
-rw-r--r-- | spec/lib/gitlab/serverless/service_spec.rb | 136 |
1 files changed, 0 insertions, 136 deletions
diff --git a/spec/lib/gitlab/serverless/service_spec.rb b/spec/lib/gitlab/serverless/service_spec.rb deleted file mode 100644 index 3400be5b48e..00000000000 --- a/spec/lib/gitlab/serverless/service_spec.rb +++ /dev/null @@ -1,136 +0,0 @@ -# frozen_string_literal: true - -require 'spec_helper' - -RSpec.describe Gitlab::Serverless::Service do - let(:cluster) { create(:cluster) } - let(:environment) { create(:environment) } - let(:attributes) do - { - 'apiVersion' => 'serving.knative.dev/v1alpha1', - 'kind' => 'Service', - 'metadata' => { - 'creationTimestamp' => '2019-10-22T21:19:13Z', - 'name' => 'kubetest', - 'namespace' => 'project1-1-environment1' - }, - 'spec' => { - 'runLatest' => { - 'configuration' => { - 'build' => { - 'template' => { - 'name' => 'some-image' - } - } - } - } - }, - 'environment_scope' => '*', - 'cluster' => cluster, - 'environment' => environment, - 'podcount' => 0 - } - end - - it 'exposes methods extracting data from the attributes hash' do - service = Gitlab::Serverless::Service.new(attributes) - - expect(service.name).to eq('kubetest') - expect(service.namespace).to eq('project1-1-environment1') - expect(service.environment_scope).to eq('*') - expect(service.podcount).to eq(0) - expect(service.created_at).to eq(DateTime.parse('2019-10-22T21:19:13Z')) - expect(service.image).to eq('some-image') - expect(service.cluster).to eq(cluster) - expect(service.environment).to eq(environment) - end - - it 'returns nil for missing attributes' do - service = Gitlab::Serverless::Service.new({}) - - [:name, :namespace, :environment_scope, :cluster, :podcount, :created_at, :image, :description, :url, :environment].each do |method| - expect(service.send(method)).to be_nil - end - end - - describe '#description' do - it 'extracts the description in knative 7 format if available' do - attributes = { - 'spec' => { - 'template' => { - 'metadata' => { - 'annotations' => { - 'Description' => 'some description' - } - } - } - } - } - service = Gitlab::Serverless::Service.new(attributes) - - expect(service.description).to eq('some description') - end - - it 'extracts the description in knative 5/6 format if 7 is not available' do - attributes = { - 'spec' => { - 'runLatest' => { - 'configuration' => { - 'revisionTemplate' => { - 'metadata' => { - 'annotations' => { - 'Description' => 'some description' - } - } - } - } - } - } - } - service = Gitlab::Serverless::Service.new(attributes) - - expect(service.description).to eq('some description') - end - end - - describe '#url' do - let(:serverless_domain) { instance_double(::Serverless::Domain, uri: URI('https://proxy.example.com')) } - - it 'returns proxy URL if cluster has serverless domain' do - # cluster = create(:cluster) - knative = create(:clusters_applications_knative, :installed, cluster: cluster) - create(:serverless_domain_cluster, clusters_applications_knative_id: knative.id) - service = Gitlab::Serverless::Service.new(attributes.merge('cluster' => cluster)) - - expect(::Serverless::Domain).to receive(:new).with( - function_name: service.name, - serverless_domain_cluster: service.cluster.serverless_domain, - environment: service.environment - ).and_return(serverless_domain) - - expect(service.url).to eq('https://proxy.example.com') - end - - it 'returns the URL from the knative 6/7 format' do - attributes = { - 'status' => { - 'url' => 'https://example.com' - } - } - service = Gitlab::Serverless::Service.new(attributes) - - expect(service.url).to eq('https://example.com') - end - - it 'returns the URL from the knative 5 format' do - attributes = { - 'status' => { - 'domain' => 'example.com' - } - } - service = Gitlab::Serverless::Service.new(attributes) - - expect(service.url).to eq('http://example.com') - end - end -end |