gitlab-org--gitlab-foss/spec/views/ci/lints/show.html.haml_spec.rb

98 lines
2.3 KiB
Ruby
Raw Normal View History

2016-09-09 08:43:43 -04:00
require 'spec_helper'
describe 'ci/lints/show' do
include Devise::TestHelpers
describe 'XSS protection' do
let(:config_processor) { Ci::GitlabCiYamlProcessor.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: '<h1>rspec</h1>',
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
2016-09-09 08:43:43 -04:00
let(:content) do
2016-09-12 02:47:35 -04:00
{
build_template: {
2016-09-09 08:43:43 -04:00
script: './build.sh',
tags: ['dotnet'],
only: ['test@dude/repo'],
except: ['deploy'],
environment: 'testing'
}
}
end
2016-09-12 02:47:35 -04:00
2016-09-09 08:43:43 -04:00
let(:config_processor) { Ci::GitlabCiYamlProcessor.new(YAML.dump(content)) }
2016-09-12 02:47:35 -04:00
context 'when the content is valid' do
2016-09-09 08:43:43 -04:00
before do
assign(:status, true)
assign(:builds, config_processor.builds)
assign(:stages, config_processor.stages)
2016-09-20 09:19:55 -04:00
assign(:jobs, config_processor.jobs)
2016-09-09 08:43:43 -04:00
end
2016-09-12 02:47:35 -04:00
it 'shows the correct values' do
2016-09-09 08:43:43 -04:00
render
expect(rendered).to have_content('Tag list: dotnet')
expect(rendered).to have_content('Refs only: test@dude/repo')
expect(rendered).to have_content('Refs except: deploy')
expect(rendered).to have_content('Environment: testing')
expect(rendered).to have_content('When: on_success')
end
end
2016-09-20 09:19:55 -04:00
context 'when the content is invalid' do
before do
assign(:status, false)
assign(:error, 'Undefined error')
end
it 'shows error message' do
render
2016-09-20 11:28:54 -04:00
expect(rendered).to have_content('Status: syntax is incorrect')
2016-09-20 09:19:55 -04:00
expect(rendered).to have_content('Error: Undefined error')
expect(rendered).not_to have_content('Tag list:')
end
end
2016-09-09 08:43:43 -04:00
end