diff options
Diffstat (limited to 'spec/models/environment_spec.rb')
-rw-r--r-- | spec/models/environment_spec.rb | 424 |
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 |