From b40d5d0fbb4d61ab8d5ee393eb91a395fb70b236 Mon Sep 17 00:00:00 2001 From: Grzegorz Bizon Date: Thu, 22 Mar 2018 15:22:50 +0100 Subject: Fix static analysis and tests related to YAML processing --- spec/views/ci/lints/show.html.haml_spec.rb | 1 + 1 file changed, 1 insertion(+) (limited to 'spec/views') diff --git a/spec/views/ci/lints/show.html.haml_spec.rb b/spec/views/ci/lints/show.html.haml_spec.rb index 7724d54c569..ded320793ea 100644 --- a/spec/views/ci/lints/show.html.haml_spec.rb +++ b/spec/views/ci/lints/show.html.haml_spec.rb @@ -5,6 +5,7 @@ describe 'ci/lints/show' do describe 'XSS protection' do let(:config_processor) { Gitlab::Ci::YamlProcessor.new(YAML.dump(content)) } + before do assign(:status, true) assign(:builds, config_processor.builds) -- cgit v1.2.3 From 80f9aff34b07fd8dc490a06cd6281b5af4310438 Mon Sep 17 00:00:00 2001 From: Mayra Cabrera Date: Tue, 13 Mar 2018 11:57:16 -0600 Subject: Make ci/lint page context aware: - Create ci/lints controller inside project/ - Move js pages to be inside projects/ - Copy view ci/lint view to be inside project folder - Remove ci/lint view and js files Closes #43603 --- spec/views/ci/lints/show.html.haml_spec.rb | 98 -------------------- .../views/projects/ci/lints/show.html.haml_spec.rb | 102 +++++++++++++++++++++ 2 files changed, 102 insertions(+), 98 deletions(-) delete mode 100644 spec/views/ci/lints/show.html.haml_spec.rb create mode 100644 spec/views/projects/ci/lints/show.html.haml_spec.rb (limited to 'spec/views') diff --git a/spec/views/ci/lints/show.html.haml_spec.rb b/spec/views/ci/lints/show.html.haml_spec.rb deleted file mode 100644 index ded320793ea..00000000000 --- a/spec/views/ci/lints/show.html.haml_spec.rb +++ /dev/null @@ -1,98 +0,0 @@ -require 'spec_helper' - -describe 'ci/lints/show' do - include Devise::Test::ControllerHelpers - - describe 'XSS protection' do - let(:config_processor) { Gitlab::Ci::YamlProcessor.new(YAML.dump(content)) } - - before do - assign(:status, true) - assign(:builds, config_processor.builds) - assign(:stages, config_processor.stages) - assign(:jobs, config_processor.jobs) - end - - context 'when builds attrbiutes contain HTML nodes' do - let(:content) do - { - rspec: { - script: '

rspec

', - stage: 'test' - } - } - end - - it 'does not render HTML elements' do - render - - expect(rendered).not_to have_css('h1', text: 'rspec') - end - end - - context 'when builds attributes do not contain HTML nodes' do - let(:content) do - { - rspec: { - script: 'rspec', - stage: 'test' - } - } - end - - it 'shows configuration in the table' do - render - - expect(rendered).to have_css('td pre', text: 'rspec') - end - end - end - - let(:content) do - { - build_template: { - script: './build.sh', - tags: ['dotnet'], - only: ['test@dude/repo'], - except: ['deploy'], - environment: 'testing' - } - } - end - - let(:config_processor) { Gitlab::Ci::YamlProcessor.new(YAML.dump(content)) } - - context 'when the content is valid' do - before do - assign(:status, true) - assign(:builds, config_processor.builds) - assign(:stages, config_processor.stages) - assign(:jobs, config_processor.jobs) - end - - it 'shows the correct values' do - render - - expect(rendered).to have_content('Tag list: dotnet') - expect(rendered).to have_content('Only policy: refs, test@dude/repo') - expect(rendered).to have_content('Except policy: refs, deploy') - expect(rendered).to have_content('Environment: testing') - expect(rendered).to have_content('When: on_success') - end - end - - context 'when the content is invalid' do - before do - assign(:status, false) - assign(:error, 'Undefined error') - end - - it 'shows error message' do - render - - expect(rendered).to have_content('Status: syntax is incorrect') - expect(rendered).to have_content('Error: Undefined error') - expect(rendered).not_to have_content('Tag list:') - end - end -end diff --git a/spec/views/projects/ci/lints/show.html.haml_spec.rb b/spec/views/projects/ci/lints/show.html.haml_spec.rb new file mode 100644 index 00000000000..b50acc54276 --- /dev/null +++ b/spec/views/projects/ci/lints/show.html.haml_spec.rb @@ -0,0 +1,102 @@ +require 'spec_helper' + +describe 'projects/ci/lints/show' do + include Devise::Test::ControllerHelpers + let(:project) { create(:project, :repository) } + + describe 'XSS protection' do + let(:config_processor) { Gitlab::Ci::YamlProcessor.new(YAML.dump(content)) } + + before do + assign(:project, project) + assign(:status, true) + assign(:builds, config_processor.builds) + assign(:stages, config_processor.stages) + assign(:jobs, config_processor.jobs) + end + + context 'when builds attrbiutes contain HTML nodes' do + let(:content) do + { + rspec: { + script: '

rspec

', + stage: 'test' + } + } + end + + it 'does not render HTML elements' do + render + + expect(rendered).not_to have_css('h1', text: 'rspec') + end + end + + context 'when builds attributes do not contain HTML nodes' do + let(:content) do + { + rspec: { + script: 'rspec', + stage: 'test' + } + } + end + + it 'shows configuration in the table' do + render + + expect(rendered).to have_css('td pre', text: 'rspec') + end + end + end + + let(:content) do + { + build_template: { + script: './build.sh', + tags: ['dotnet'], + only: ['test@dude/repo'], + except: ['deploy'], + environment: 'testing' + } + } + end + + let(:config_processor) { Gitlab::Ci::YamlProcessor.new(YAML.dump(content)) } + + context 'when the content is valid' do + before do + assign(:project, project) + assign(:status, true) + assign(:builds, config_processor.builds) + assign(:stages, config_processor.stages) + assign(:jobs, config_processor.jobs) + end + + it 'shows the correct values' do + render + + expect(rendered).to have_content('Tag list: dotnet') + expect(rendered).to have_content('Only policy: refs, test@dude/repo') + expect(rendered).to have_content('Except policy: refs, deploy') + expect(rendered).to have_content('Environment: testing') + expect(rendered).to have_content('When: on_success') + end + end + + context 'when the content is invalid' do + before do + assign(:project, project) + assign(:status, false) + assign(:error, 'Undefined error') + end + + it 'shows error message' do + render + + expect(rendered).to have_content('Status: syntax is incorrect') + expect(rendered).to have_content('Error: Undefined error') + expect(rendered).not_to have_content('Tag list:') + end + end +end -- cgit v1.2.3 From 02bc89983a4b4b81a2f6279c39622b8a14430e3d Mon Sep 17 00:00:00 2001 From: Mayra Cabrera Date: Tue, 13 Mar 2018 14:57:42 -0600 Subject: Build ci/lint page - Includes new image from gitlab-svgs - Updates dependency for svgs --- .../views/projects/ci/lints/show.html.haml_spec.rb | 27 ++++++++++------------ 1 file changed, 12 insertions(+), 15 deletions(-) (limited to 'spec/views') diff --git a/spec/views/projects/ci/lints/show.html.haml_spec.rb b/spec/views/projects/ci/lints/show.html.haml_spec.rb index b50acc54276..2f0cd38c14a 100644 --- a/spec/views/projects/ci/lints/show.html.haml_spec.rb +++ b/spec/views/projects/ci/lints/show.html.haml_spec.rb @@ -3,10 +3,9 @@ require 'spec_helper' describe 'projects/ci/lints/show' do include Devise::Test::ControllerHelpers let(:project) { create(:project, :repository) } + let(:config_processor) { Gitlab::Ci::YamlProcessor.new(YAML.dump(content)) } describe 'XSS protection' do - let(:config_processor) { Gitlab::Ci::YamlProcessor.new(YAML.dump(content)) } - before do assign(:project, project) assign(:status, true) @@ -50,21 +49,19 @@ describe 'projects/ci/lints/show' do end end - let(:content) do - { - build_template: { - script: './build.sh', - tags: ['dotnet'], - only: ['test@dude/repo'], - except: ['deploy'], - environment: 'testing' + context 'when the content is valid' do + let(:content) do + { + build_template: { + script: './build.sh', + tags: ['dotnet'], + only: ['test@dude/repo'], + except: ['deploy'], + environment: 'testing' + } } - } - end - - let(:config_processor) { Gitlab::Ci::YamlProcessor.new(YAML.dump(content)) } + end - context 'when the content is valid' do before do assign(:project, project) assign(:status, true) -- cgit v1.2.3 From 909c277e56e2773bab8368b6fdd3871a4c9c53f3 Mon Sep 17 00:00:00 2001 From: Tomasz Maczukin Date: Thu, 22 Mar 2018 15:31:41 +0100 Subject: Move leftovers from pipelines_settings_controller to settings/ci_cd_controller --- .../pipelines_settings/_show.html.haml_spec.rb | 62 ---------------------- .../settings/ci_cd/_form.html.haml_spec.rb | 62 ++++++++++++++++++++++ 2 files changed, 62 insertions(+), 62 deletions(-) delete mode 100644 spec/views/projects/pipelines_settings/_show.html.haml_spec.rb create mode 100644 spec/views/projects/settings/ci_cd/_form.html.haml_spec.rb (limited to 'spec/views') diff --git a/spec/views/projects/pipelines_settings/_show.html.haml_spec.rb b/spec/views/projects/pipelines_settings/_show.html.haml_spec.rb deleted file mode 100644 index 7b300150874..00000000000 --- a/spec/views/projects/pipelines_settings/_show.html.haml_spec.rb +++ /dev/null @@ -1,62 +0,0 @@ -require 'spec_helper' - -describe 'projects/pipelines_settings/_show' do - let(:project) { create(:project, :repository) } - - before do - assign :project, project - end - - context 'when kubernetes is not active' do - context 'when auto devops domain is not defined' do - it 'shows warning message' do - render - - expect(rendered).to have_css('.settings-message') - expect(rendered).to have_text('Auto Review Apps and Auto Deploy need a domain name and a') - expect(rendered).to have_link('Kubernetes cluster') - end - end - - context 'when auto devops domain is defined' do - before do - project.build_auto_devops(domain: 'example.com') - end - - it 'shows warning message' do - render - - expect(rendered).to have_css('.settings-message') - expect(rendered).to have_text('Auto Review Apps and Auto Deploy need a') - expect(rendered).to have_link('Kubernetes cluster') - end - end - end - - context 'when kubernetes is active' do - before do - create(:kubernetes_service, project: project) - end - - context 'when auto devops domain is not defined' do - it 'shows warning message' do - render - - expect(rendered).to have_css('.settings-message') - expect(rendered).to have_text('Auto Review Apps and Auto Deploy need a domain name to work correctly.') - end - end - - context 'when auto devops domain is defined' do - before do - project.build_auto_devops(domain: 'example.com') - end - - it 'does not show warning message' do - render - - expect(rendered).not_to have_css('.settings-message') - end - end - end -end diff --git a/spec/views/projects/settings/ci_cd/_form.html.haml_spec.rb b/spec/views/projects/settings/ci_cd/_form.html.haml_spec.rb new file mode 100644 index 00000000000..be9a4d9c57c --- /dev/null +++ b/spec/views/projects/settings/ci_cd/_form.html.haml_spec.rb @@ -0,0 +1,62 @@ +require 'spec_helper' + +describe 'projects/settings/ci_cd/_form' do + let(:project) { create(:project, :repository) } + + before do + assign :project, project + end + + context 'when kubernetes is not active' do + context 'when auto devops domain is not defined' do + it 'shows warning message' do + render + + expect(rendered).to have_css('.settings-message') + expect(rendered).to have_text('Auto Review Apps and Auto Deploy need a domain name and a') + expect(rendered).to have_link('Kubernetes cluster') + end + end + + context 'when auto devops domain is defined' do + before do + project.build_auto_devops(domain: 'example.com') + end + + it 'shows warning message' do + render + + expect(rendered).to have_css('.settings-message') + expect(rendered).to have_text('Auto Review Apps and Auto Deploy need a') + expect(rendered).to have_link('Kubernetes cluster') + end + end + end + + context 'when kubernetes is active' do + before do + create(:kubernetes_service, project: project) + end + + context 'when auto devops domain is not defined' do + it 'shows warning message' do + render + + expect(rendered).to have_css('.settings-message') + expect(rendered).to have_text('Auto Review Apps and Auto Deploy need a domain name to work correctly.') + end + end + + context 'when auto devops domain is defined' do + before do + project.build_auto_devops(domain: 'example.com') + end + + it 'does not show warning message' do + render + + expect(rendered).not_to have_css('.settings-message') + end + end + end +end -- cgit v1.2.3