summaryrefslogtreecommitdiff
path: root/spec/models/environment_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/models/environment_spec.rb')
-rw-r--r--spec/models/environment_spec.rb424
1 files changed, 212 insertions, 212 deletions
diff --git a/spec/models/environment_spec.rb b/spec/models/environment_spec.rb
index ab1b306e597..705780bc143 100644
--- a/spec/models/environment_spec.rb
+++ b/spec/models/environment_spec.rb
@@ -1,4 +1,4 @@
-require 'spec_helper'
+require "spec_helper"
describe Environment do
let(:project) { create(:project, :stubbed_repository) }
@@ -19,7 +19,7 @@ describe Environment do
it { is_expected.to validate_length_of(:external_url).is_at_most(255) }
- describe '.order_by_last_deployed_at' do
+ describe ".order_by_last_deployed_at" do
let(:project) { create(:project, :repository) }
let!(:environment1) { create(:environment, project: project) }
let!(:environment2) { create(:environment, project: project) }
@@ -28,93 +28,93 @@ describe Environment do
let!(:deployment2) { create(:deployment, environment: environment2) }
let!(:deployment3) { create(:deployment, environment: environment1) }
- it 'returns the environments in order of having been last deployed' do
+ it "returns the environments in order of having been last deployed" do
expect(project.environments.order_by_last_deployed_at.to_a).to eq([environment3, environment2, environment1])
end
end
- describe 'state machine' do
- it 'invalidates the cache after a change' do
+ describe "state machine" do
+ it "invalidates the cache after a change" do
expect(environment).to receive(:expire_etag_cache)
environment.stop
end
end
- describe '.for_name_like' do
+ describe ".for_name_like" do
subject { project.environments.for_name_like(query, limit: limit) }
- let!(:environment) { create(:environment, name: 'production', project: project) }
- let(:query) { 'pro' }
+ let!(:environment) { create(:environment, name: "production", project: project) }
+ let(:query) { "pro" }
let(:limit) { 5 }
- it 'returns a found name' do
+ it "returns a found name" do
is_expected.to include(environment)
end
- context 'when query is production' do
- let(:query) { 'production' }
+ context "when query is production" do
+ let(:query) { "production" }
- it 'returns a found name' do
+ it "returns a found name" do
is_expected.to include(environment)
end
end
- context 'when query is productionA' do
- let(:query) { 'productionA' }
+ context "when query is productionA" do
+ let(:query) { "productionA" }
- it 'returns empty array' do
+ it "returns empty array" do
is_expected.to be_empty
end
end
- context 'when query is empty' do
- let(:query) { '' }
+ context "when query is empty" do
+ let(:query) { "" }
- it 'returns a found name' do
+ it "returns a found name" do
is_expected.to include(environment)
end
end
- context 'when query is nil' do
+ context "when query is nil" do
let(:query) { }
- it 'raises an error' do
+ it "raises an error" do
expect { subject }.to raise_error(NoMethodError)
end
end
- context 'when query is partially matched in the middle of environment name' do
- let(:query) { 'duction' }
+ context "when query is partially matched in the middle of environment name" do
+ let(:query) { "duction" }
- it 'returns empty array' do
+ it "returns empty array" do
is_expected.to be_empty
end
end
- context 'when query contains a wildcard character' do
- let(:query) { 'produc%' }
+ context "when query contains a wildcard character" do
+ let(:query) { "produc%" }
- it 'prevents wildcard injection' do
+ it "prevents wildcard injection" do
is_expected.to be_empty
end
end
end
- describe '.pluck_names' do
+ describe ".pluck_names" do
subject { described_class.pluck_names }
- let!(:environment) { create(:environment, name: 'production', project: project) }
+ let!(:environment) { create(:environment, name: "production", project: project) }
- it 'plucks names' do
+ it "plucks names" do
is_expected.to eq(%w[production])
end
end
- describe '#expire_etag_cache' do
+ describe "#expire_etag_cache" do
let(:store) { Gitlab::EtagCaching::Store.new }
- it 'changes the cached value' do
+ it "changes the cached value" do
old_value = store.get(environment.etag_cache_key)
environment.stop
@@ -123,71 +123,71 @@ describe Environment do
end
end
- describe '.with_deployment' do
+ describe ".with_deployment" do
subject { described_class.with_deployment(sha) }
let(:environment) { create(:environment) }
let(:sha) { RepoHelpers.sample_commit.id }
- context 'when deployment has the specified sha' do
+ context "when deployment has the specified sha" do
let!(:deployment) { create(:deployment, environment: environment, sha: sha) }
it { is_expected.to eq([environment]) }
end
- context 'when deployment does not have the specified sha' do
- let!(:deployment) { create(:deployment, environment: environment, sha: 'abc') }
+ context "when deployment does not have the specified sha" do
+ let!(:deployment) { create(:deployment, environment: environment, sha: "abc") }
it { is_expected.to be_empty }
end
end
- describe '#folder_name' do
- context 'when it is inside a folder' do
+ describe "#folder_name" do
+ context "when it is inside a folder" do
subject(:environment) do
- create(:environment, name: 'staging/review-1')
+ create(:environment, name: "staging/review-1")
end
- it 'returns a top-level folder name' do
- expect(environment.folder_name).to eq 'staging'
+ it "returns a top-level folder name" do
+ expect(environment.folder_name).to eq "staging"
end
end
- context 'when the environment if a top-level item itself' do
+ context "when the environment if a top-level item itself" do
subject(:environment) do
- create(:environment, name: 'production')
+ create(:environment, name: "production")
end
- it 'returns an environment name' do
- expect(environment.folder_name).to eq 'production'
+ it "returns an environment name" do
+ expect(environment.folder_name).to eq "production"
end
end
end
- describe '#name_without_type' do
- context 'when it is inside a folder' do
+ describe "#name_without_type" do
+ context "when it is inside a folder" do
subject(:environment) do
- create(:environment, name: 'staging/review-1')
+ create(:environment, name: "staging/review-1")
end
- it 'returns name without folder' do
- expect(environment.name_without_type).to eq 'review-1'
+ it "returns name without folder" do
+ expect(environment.name_without_type).to eq "review-1"
end
end
- context 'when the environment if a top-level item itself' do
+ context "when the environment if a top-level item itself" do
subject(:environment) do
- create(:environment, name: 'production')
+ create(:environment, name: "production")
end
- it 'returns full name' do
- expect(environment.name_without_type).to eq 'production'
+ it "returns full name" do
+ expect(environment.name_without_type).to eq "production"
end
end
end
- describe '#nullify_external_url' do
- it 'replaces a blank url with nil' do
+ describe "#nullify_external_url" do
+ it "replaces a blank url with nil" do
env = build(:environment, external_url: "")
expect(env.save).to be true
@@ -195,47 +195,47 @@ describe Environment do
end
end
- describe '#includes_commit?' do
+ describe "#includes_commit?" do
let(:project) { create(:project, :repository) }
- context 'without a last deployment' do
+ context "without a last deployment" do
it "returns false" do
- expect(environment.includes_commit?('HEAD')).to be false
+ expect(environment.includes_commit?("HEAD")).to be false
end
end
- context 'with a last deployment' do
+ context "with a last deployment" do
let!(:deployment) do
- create(:deployment, :success, environment: environment, sha: project.commit('master').id)
+ create(:deployment, :success, environment: environment, sha: project.commit("master").id)
end
- context 'in the same branch' do
- it 'returns true' do
+ context "in the same branch" do
+ it "returns true" do
expect(environment.includes_commit?(RepoHelpers.sample_commit)).to be true
end
end
- context 'not in the same branch' do
+ context "not in the same branch" do
before do
- deployment.update(sha: project.commit('feature').id)
+ deployment.update(sha: project.commit("feature").id)
end
- it 'returns false' do
+ it "returns false" do
expect(environment.includes_commit?(RepoHelpers.sample_commit)).to be false
end
end
end
end
- describe '#update_merge_request_metrics?' do
+ describe "#update_merge_request_metrics?" do
{
- 'production' => true,
- 'production/eu' => true,
- 'production/www.gitlab.com' => true,
- 'productioneu' => false,
- 'Production' => false,
- 'Production/eu' => false,
- 'test-production' => false
+ "production" => true,
+ "production/eu" => true,
+ "production/www.gitlab.com" => true,
+ "productioneu" => false,
+ "Production" => false,
+ "Production/eu" => false,
+ "test-production" => false,
}.each do |name, expected_value|
it "returns #{expected_value} for #{name}" do
env = create(:environment, name: name)
@@ -245,65 +245,65 @@ describe Environment do
end
end
- describe '#first_deployment_for' do
+ describe "#first_deployment_for" do
let(:project) { create(:project, :repository) }
let!(:deployment) { create(:deployment, :succeed, environment: environment, ref: commit.parent.id) }
let!(:deployment1) { create(:deployment, :succeed, environment: environment, ref: commit.id) }
let(:head_commit) { project.commit }
let(:commit) { project.commit.parent }
- it 'returns deployment id for the environment' do
+ it "returns deployment id for the environment" do
expect(environment.first_deployment_for(commit.id)).to eq deployment1
end
- it 'return nil when no deployment is found' do
+ it "return nil when no deployment is found" do
expect(environment.first_deployment_for(head_commit.id)).to eq nil
end
- it 'returns a UTF-8 ref' do
+ it "returns a UTF-8 ref" do
expect(environment.first_deployment_for(commit.id).ref).to be_utf8
end
end
- describe '#environment_type' do
+ describe "#environment_type" do
subject { environment.environment_type }
- it 'sets a environment type if name has multiple segments' do
- environment.update!(name: 'production/worker.gitlab.com')
+ it "sets a environment type if name has multiple segments" do
+ environment.update!(name: "production/worker.gitlab.com")
- is_expected.to eq('production')
+ is_expected.to eq("production")
end
- it 'nullifies a type if it\'s a simple name' do
- environment.update!(name: 'production')
+ it "nullifies a type if it's a simple name" do
+ environment.update!(name: "production")
is_expected.to be_nil
end
end
- describe '#stop_action_available?' do
+ describe "#stop_action_available?" do
subject { environment.stop_action_available? }
- context 'when no other actions' do
+ context "when no other actions" do
it { is_expected.to be_falsey }
end
- context 'when matching action is defined' do
+ context "when matching action is defined" do
let(:build) { create(:ci_build) }
let!(:deployment) do
create(:deployment, :success,
- environment: environment,
- deployable: build,
- on_stop: 'close_app')
+ environment: environment,
+ deployable: build,
+ on_stop: "close_app")
end
let!(:close_action) do
create(:ci_build, :manual, pipeline: build.pipeline,
- name: 'close_app')
+ name: "close_app")
end
- context 'when environment is available' do
+ context "when environment is available" do
before do
environment.start
end
@@ -311,7 +311,7 @@ describe Environment do
it { is_expected.to be_truthy }
end
- context 'when environment is stopped' do
+ context "when environment is stopped" do
before do
environment.stop
end
@@ -321,7 +321,7 @@ describe Environment do
end
end
- describe '#stop_with_action!' do
+ describe "#stop_with_action!" do
let(:user) { create(:user) }
subject { environment.stop_with_action!(user) }
@@ -330,8 +330,8 @@ describe Environment do
expect(environment).to receive(:available?).and_call_original
end
- context 'when no other actions' do
- context 'environment is available' do
+ context "when no other actions" do
+ context "environment is available" do
before do
environment.update(state: :available)
end
@@ -343,7 +343,7 @@ describe Environment do
end
end
- context 'environment is already stopped' do
+ context "environment is already stopped" do
before do
environment.update(state: :stopped)
end
@@ -356,53 +356,53 @@ describe Environment do
end
end
- context 'when matching action is defined' do
+ context "when matching action is defined" do
let(:pipeline) { create(:ci_pipeline, project: project) }
let(:build) { create(:ci_build, pipeline: pipeline) }
let!(:deployment) do
create(:deployment, :success,
- environment: environment,
- deployable: build,
- on_stop: 'close_app')
+ environment: environment,
+ deployable: build,
+ on_stop: "close_app")
end
- context 'when user is not allowed to stop environment' do
+ context "when user is not allowed to stop environment" do
let!(:close_action) do
- create(:ci_build, :manual, pipeline: pipeline, name: 'close_app')
+ create(:ci_build, :manual, pipeline: pipeline, name: "close_app")
end
- it 'raises an exception' do
+ it "raises an exception" do
expect { subject }.to raise_error(Gitlab::Access::AccessDeniedError)
end
end
- context 'when user is allowed to stop environment' do
+ context "when user is allowed to stop environment" do
before do
project.add_developer(user)
create(:protected_branch, :developers_can_merge,
- name: 'master', project: project)
+ name: "master", project: project)
end
- context 'when action did not yet finish' do
+ context "when action did not yet finish" do
let!(:close_action) do
- create(:ci_build, :manual, pipeline: pipeline, name: 'close_app')
+ create(:ci_build, :manual, pipeline: pipeline, name: "close_app")
end
- it 'returns the same action' do
+ it "returns the same action" do
expect(subject).to eq(close_action)
expect(subject.user).to eq(user)
end
end
- context 'if action did finish' do
+ context "if action did finish" do
let!(:close_action) do
create(:ci_build, :manual, :success,
- pipeline: pipeline, name: 'close_app')
+ pipeline: pipeline, name: "close_app")
end
- it 'returns a new action of the same type' do
+ it "returns a new action of the same type" do
expect(subject).to be_persisted
expect(subject.name).to eq(close_action.name)
expect(subject.user).to eq(user)
@@ -412,138 +412,138 @@ describe Environment do
end
end
- describe 'recently_updated_on_branch?' do
- subject { environment.recently_updated_on_branch?('feature') }
+ describe "recently_updated_on_branch?" do
+ subject { environment.recently_updated_on_branch?("feature") }
- context 'when last deployment to environment is the most recent one' do
+ context "when last deployment to environment is the most recent one" do
before do
- create(:deployment, :success, environment: environment, ref: 'feature')
+ create(:deployment, :success, environment: environment, ref: "feature")
end
it { is_expected.to be true }
end
- context 'when last deployment to environment is not the most recent' do
+ context "when last deployment to environment is not the most recent" do
before do
- create(:deployment, :success, environment: environment, ref: 'feature')
- create(:deployment, :success, environment: environment, ref: 'master')
+ create(:deployment, :success, environment: environment, ref: "feature")
+ create(:deployment, :success, environment: environment, ref: "master")
end
it { is_expected.to be false }
end
end
- describe '#actions_for' do
+ describe "#actions_for" do
let(:deployment) { create(:deployment, :success, environment: environment) }
let(:pipeline) { deployment.deployable.pipeline }
- let!(:review_action) { create(:ci_build, :manual, name: 'review-apps', pipeline: pipeline, environment: 'review/$CI_COMMIT_REF_NAME' )}
- let!(:production_action) { create(:ci_build, :manual, name: 'production', pipeline: pipeline, environment: 'production' )}
+ let!(:review_action) { create(:ci_build, :manual, name: "review-apps", pipeline: pipeline, environment: "review/$CI_COMMIT_REF_NAME")}
+ let!(:production_action) { create(:ci_build, :manual, name: "production", pipeline: pipeline, environment: "production")}
- it 'returns a list of actions with matching environment' do
- expect(environment.actions_for('review/master')).to contain_exactly(review_action)
+ it "returns a list of actions with matching environment" do
+ expect(environment.actions_for("review/master")).to contain_exactly(review_action)
end
end
- describe '.deployments' do
+ describe ".deployments" do
subject { environment.deployments }
- context 'when there is a deployment record with created status' do
+ context "when there is a deployment record with created status" do
let(:deployment) { create(:deployment, :created, environment: environment) }
- it 'does not return the record' do
+ it "does not return the record" do
is_expected.to be_empty
end
end
- context 'when there is a deployment record with running status' do
+ context "when there is a deployment record with running status" do
let(:deployment) { create(:deployment, :running, environment: environment) }
- it 'does not return the record' do
+ it "does not return the record" do
is_expected.to be_empty
end
end
- context 'when there is a deployment record with success status' do
+ context "when there is a deployment record with success status" do
let(:deployment) { create(:deployment, :success, environment: environment) }
- it 'returns the record' do
+ it "returns the record" do
is_expected.to eq([deployment])
end
end
end
- describe '.last_deployment' do
+ describe ".last_deployment" do
subject { environment.last_deployment }
before do
allow_any_instance_of(Deployment).to receive(:create_ref)
end
- context 'when there is an old deployment record' do
+ context "when there is an old deployment record" do
let!(:previous_deployment) { create(:deployment, :success, environment: environment) }
- context 'when there is a deployment record with created status' do
+ context "when there is a deployment record with created status" do
let!(:deployment) { create(:deployment, environment: environment) }
- it 'returns the previous deployment' do
+ it "returns the previous deployment" do
is_expected.to eq(previous_deployment)
end
end
- context 'when there is a deployment record with running status' do
+ context "when there is a deployment record with running status" do
let!(:deployment) { create(:deployment, :running, environment: environment) }
- it 'returns the previous deployment' do
+ it "returns the previous deployment" do
is_expected.to eq(previous_deployment)
end
end
- context 'when there is a deployment record with success status' do
+ context "when there is a deployment record with success status" do
let!(:deployment) { create(:deployment, :success, environment: environment) }
- it 'returns the latest successful deployment' do
+ it "returns the latest successful deployment" do
is_expected.to eq(deployment)
end
end
end
end
- describe '#has_terminals?' do
+ describe "#has_terminals?" do
subject { environment.has_terminals? }
- context 'when the environment is available' do
- context 'with a deployment service' do
- shared_examples 'same behavior between KubernetesService and Platform::Kubernetes' do
- context 'and a deployment' do
+ context "when the environment is available" do
+ context "with a deployment service" do
+ shared_examples "same behavior between KubernetesService and Platform::Kubernetes" do
+ context "and a deployment" do
let!(:deployment) { create(:deployment, :success, environment: environment) }
it { is_expected.to be_truthy }
end
- context 'but no deployments' do
+ context "but no deployments" do
it { is_expected.to be_falsy }
end
end
- context 'when user configured kubernetes from Integration > Kubernetes' do
+ context "when user configured kubernetes from Integration > Kubernetes" do
let(:project) { create(:kubernetes_project) }
- it_behaves_like 'same behavior between KubernetesService and Platform::Kubernetes'
+ it_behaves_like "same behavior between KubernetesService and Platform::Kubernetes"
end
- context 'when user configured kubernetes from CI/CD > Clusters' do
+ context "when user configured kubernetes from CI/CD > Clusters" do
let!(:cluster) { create(:cluster, :project, :provided_by_gcp) }
let(:project) { cluster.project }
- it_behaves_like 'same behavior between KubernetesService and Platform::Kubernetes'
+ it_behaves_like "same behavior between KubernetesService and Platform::Kubernetes"
end
end
- context 'without a deployment service' do
+ context "without a deployment service" do
it { is_expected.to be_falsy }
end
end
- context 'when the environment is unavailable' do
+ context "when the environment is unavailable" do
let(:project) { create(:kubernetes_project) }
before do
@@ -554,25 +554,25 @@ describe Environment do
end
end
- describe '#deployment_platform' do
- context 'when there is a deployment platform for environment' do
+ describe "#deployment_platform" do
+ context "when there is a deployment platform for environment" do
let!(:cluster) do
create(:cluster, :provided_by_gcp,
- environment_scope: '*', projects: [project])
+ environment_scope: "*", projects: [project])
end
- it 'finds a deployment platform' do
+ it "finds a deployment platform" do
expect(environment.deployment_platform).to eq cluster.platform
end
end
- context 'when there is no deployment platform for environment' do
- it 'returns nil' do
+ context "when there is no deployment platform for environment" do
+ it "returns nil" do
expect(environment.deployment_platform).to be_nil
end
end
- it 'checks deployment platforms associated with a project' do
+ it "checks deployment platforms associated with a project" do
expect(project).to receive(:deployment_platform)
.with(environment: environment.name)
@@ -580,16 +580,16 @@ describe Environment do
end
end
- describe '#terminals' do
+ describe "#terminals" do
subject { environment.terminals }
- context 'when the environment has terminals' do
+ context "when the environment has terminals" do
before do
allow(environment).to receive(:has_terminals?).and_return(true)
end
- shared_examples 'same behavior between KubernetesService and Platform::Kubernetes' do
- it 'returns the terminals from the deployment service' do
+ shared_examples "same behavior between KubernetesService and Platform::Kubernetes" do
+ it "returns the terminals from the deployment service" do
expect(project.deployment_platform)
.to receive(:terminals).with(environment)
.and_return(:fake_terminals)
@@ -598,21 +598,21 @@ describe Environment do
end
end
- context 'when user configured kubernetes from Integration > Kubernetes' do
+ context "when user configured kubernetes from Integration > Kubernetes" do
let(:project) { create(:kubernetes_project) }
- it_behaves_like 'same behavior between KubernetesService and Platform::Kubernetes'
+ it_behaves_like "same behavior between KubernetesService and Platform::Kubernetes"
end
- context 'when user configured kubernetes from CI/CD > Clusters' do
+ context "when user configured kubernetes from CI/CD > Clusters" do
let!(:cluster) { create(:cluster, :project, :provided_by_gcp) }
let(:project) { cluster.project }
- it_behaves_like 'same behavior between KubernetesService and Platform::Kubernetes'
+ it_behaves_like "same behavior between KubernetesService and Platform::Kubernetes"
end
end
- context 'when the environment does not have terminals' do
+ context "when the environment does not have terminals" do
before do
allow(environment).to receive(:has_terminals?).and_return(false)
end
@@ -621,29 +621,29 @@ describe Environment do
end
end
- describe '#has_metrics?' do
+ describe "#has_metrics?" do
subject { environment.has_metrics? }
- context 'when the environment is available' do
- context 'with a deployment service' do
+ context "when the environment is available" do
+ context "with a deployment service" do
let(:project) { create(:prometheus_project) }
- context 'and a deployment' do
+ context "and a deployment" do
let!(:deployment) { create(:deployment, environment: environment) }
it { is_expected.to be_truthy }
end
- context 'and no deployments' do
+ context "and no deployments" do
it { is_expected.to be_truthy }
end
end
- context 'without a monitoring service' do
+ context "without a monitoring service" do
it { is_expected.to be_falsy }
end
end
- context 'when the environment is unavailable' do
+ context "when the environment is unavailable" do
let(:project) { create(:prometheus_project) }
before do
@@ -654,16 +654,16 @@ describe Environment do
end
end
- describe '#metrics' do
+ describe "#metrics" do
let(:project) { create(:prometheus_project) }
subject { environment.metrics }
- context 'when the environment has metrics' do
+ context "when the environment has metrics" do
before do
allow(environment).to receive(:has_metrics?).and_return(true)
end
- it 'returns the metrics from the deployment service' do
+ it "returns the metrics from the deployment service" do
expect(environment.prometheus_adapter)
.to receive(:query).with(:environment, environment)
.and_return(:fake_metrics)
@@ -672,7 +672,7 @@ describe Environment do
end
end
- context 'when the environment does not have metrics' do
+ context "when the environment does not have metrics" do
before do
allow(environment).to receive(:has_metrics?).and_return(false)
end
@@ -681,25 +681,25 @@ describe Environment do
end
end
- describe '#additional_metrics' do
+ describe "#additional_metrics" do
let(:project) { create(:prometheus_project) }
subject { environment.additional_metrics }
- context 'when the environment has additional metrics' do
+ context "when the environment has additional metrics" do
before do
allow(environment).to receive(:has_metrics?).and_return(true)
end
- it 'returns the additional metrics from the deployment service' do
+ it "returns the additional metrics from the deployment service" do
expect(environment.prometheus_adapter).to receive(:query)
- .with(:additional_metrics_environment, environment)
- .and_return(:fake_metrics)
+ .with(:additional_metrics_environment, environment)
+ .and_return(:fake_metrics)
is_expected.to eq(:fake_metrics)
end
end
- context 'when the environment does not have metrics' do
+ context "when the environment does not have metrics" do
before do
allow(environment).to receive(:has_metrics?).and_return(false)
end
@@ -708,7 +708,7 @@ describe Environment do
end
end
- describe '#slug' do
+ describe "#slug" do
it "is automatically generated" do
expect(environment.slug).not_to be_nil
end
@@ -730,23 +730,23 @@ describe Environment do
end
end
- describe '#generate_slug' do
+ describe "#generate_slug" do
SUFFIX = "-[a-z0-9]{6}".freeze
{
"staging-12345678901234567" => "staging-123456789" + SUFFIX,
"9-staging-123456789012345" => "env-9-staging-123" + SUFFIX,
- "staging-1234567890123456" => "staging-1234567890123456",
- "production" => "production",
- "PRODUCTION" => "production" + SUFFIX,
- "review/1-foo" => "review-1-foo" + SUFFIX,
- "1-foo" => "env-1-foo" + SUFFIX,
- "1/foo" => "env-1-foo" + SUFFIX,
- "foo-" => "foo" + SUFFIX,
- "foo--bar" => "foo-bar" + SUFFIX,
- "foo**bar" => "foo-bar" + SUFFIX,
- "*-foo" => "env-foo" + SUFFIX,
- "staging-12345678-" => "staging-12345678" + SUFFIX,
- "staging-12345678-01234567" => "staging-12345678" + SUFFIX
+ "staging-1234567890123456" => "staging-1234567890123456",
+ "production" => "production",
+ "PRODUCTION" => "production" + SUFFIX,
+ "review/1-foo" => "review-1-foo" + SUFFIX,
+ "1-foo" => "env-1-foo" + SUFFIX,
+ "1/foo" => "env-1-foo" + SUFFIX,
+ "foo-" => "foo" + SUFFIX,
+ "foo--bar" => "foo-bar" + SUFFIX,
+ "foo**bar" => "foo-bar" + SUFFIX,
+ "*-foo" => "env-foo" + SUFFIX,
+ "staging-12345678-" => "staging-12345678" + SUFFIX,
+ "staging-12345678-01234567" => "staging-12345678" + SUFFIX,
}.each do |name, matcher|
it "returns a slug matching #{matcher}, given #{name}" do
slug = described_class.new(name: name).generate_slug
@@ -756,13 +756,13 @@ describe Environment do
end
end
- describe '#ref_path' do
+ describe "#ref_path" do
subject(:environment) do
- create(:environment, name: 'staging / review-1')
+ create(:environment, name: "staging / review-1")
end
- it 'returns a path that uses the slug and does not have spaces' do
- expect(environment.ref_path).to start_with('refs/environments/staging-review-1-')
+ it "returns a path that uses the slug and does not have spaces" do
+ expect(environment.ref_path).to start_with("refs/environments/staging-review-1-")
end
it "doesn't change when the slug is nil initially" do
@@ -772,37 +772,37 @@ describe Environment do
end
end
- describe '#external_url_for' do
- let(:source_path) { 'source/file.html' }
+ describe "#external_url_for" do
+ let(:source_path) { "source/file.html" }
let(:sha) { RepoHelpers.sample_commit.id }
before do
- environment.external_url = 'http://example.com'
+ environment.external_url = "http://example.com"
end
- context 'when the public path is not known' do
+ context "when the public path is not known" do
before do
allow(project).to receive(:public_path_for_source_path).with(source_path, sha).and_return(nil)
end
- it 'returns nil' do
+ it "returns nil" do
expect(environment.external_url_for(source_path, sha)).to be_nil
end
end
- context 'when the public path is known' do
+ context "when the public path is known" do
before do
- allow(project).to receive(:public_path_for_source_path).with(source_path, sha).and_return('file.html')
+ allow(project).to receive(:public_path_for_source_path).with(source_path, sha).and_return("file.html")
end
- it 'returns the full external URL' do
- expect(environment.external_url_for(source_path, sha)).to eq('http://example.com/file.html')
+ it "returns the full external URL" do
+ expect(environment.external_url_for(source_path, sha)).to eq("http://example.com/file.html")
end
end
end
- describe '#prometheus_adapter' do
- it 'calls prometheus adapter service' do
+ describe "#prometheus_adapter" do
+ it "calls prometheus adapter service" do
expect_any_instance_of(Prometheus::AdapterService).to receive(:prometheus_adapter)
subject.prometheus_adapter