From 1a5a3be84080808554568a8c61a80cc6f3f536ed Mon Sep 17 00:00:00 2001 From: Annabel Dunstone Gray Date: Tue, 8 Nov 2016 16:29:55 -0600 Subject: First pass at tests --- spec/views/projects/builds/show.html.haml_spec.rb | 50 +++++++++++++++++++++++ 1 file changed, 50 insertions(+) (limited to 'spec/views') diff --git a/spec/views/projects/builds/show.html.haml_spec.rb b/spec/views/projects/builds/show.html.haml_spec.rb index da43622d3f9..0e702d80bd3 100644 --- a/spec/views/projects/builds/show.html.haml_spec.rb +++ b/spec/views/projects/builds/show.html.haml_spec.rb @@ -17,6 +17,56 @@ describe 'projects/builds/show' do allow(view).to receive(:can?).and_return(true) end + describe 'environment info in build view' do + context 'build with latest deployment' do + let(:build) { create(:ci_build, :success, environment: 'staging') } + let(:environment) { create(:environment, name: 'staging') } + let!(:deployment) { create(:deployment, deployable: build) } + + it 'shows deployment message' do + expect(rendered).to have_css('.environment-information', text: 'This build is the most recent deployment') + end + end + + context 'build with outdated deployment' do + let(:build) { create(:ci_build, :success, environment: 'staging', pipeline: pipeline) } + let(:environment) { create(:environment, name: 'staging', project: project) } + let!(:deployment) { create(:deployment, environment: environment, deployable: build) } + let!(:newer_deployment) { create(:deployment, environment: environment, deployable: build) } + + before do + assign(:build, build) + assign(:project, project) + + allow(view).to receive(:can?).and_return(true) + render + end + + it 'shows deployment message' do + expect(rendered).to have_css('.environment-information', text: "This build is an out-of-date deployment to #{environment.name}. View the most recent deployment #1") + end + end + + context 'build failed to deploy' do + let(:build) { create(:ci_build, :failed, environment: 'staging') } + let!(:environment) { create(:environment, name: 'staging') } + end + + context 'build will deploy' do + let(:build) { create(:ci_build, :running, environment: 'staging') } + let!(:environment) { create(:environment, name: 'staging') } + end + + context 'build that failed to deploy and environment has not been created' do + let(:build) { create(:ci_build, :failed, environment: 'staging') } + end + + context 'build that will deploy and environment has not been created' do + let(:build) { create(:ci_build, :running, environment: 'staging') } + let!(:environment) { create(:environment, name: 'staging') } + end + end + context 'when build is running' do before do build.run! -- cgit v1.2.3