
When custom-branch param is set, travis-web will serve assets from S3 from given branch (the compiled assets are uploaded to S3 on each build). Cookie will also be set to serve assets from this branch until disabled. Custom branch may be disabled by passing disable-custom-branch=true param.
54 lines
2.1 KiB
Ruby
54 lines
2.1 KiB
Ruby
require 'spec_helper'
|
|
|
|
describe Travis::Web::App do
|
|
before do
|
|
current_session.global_env['HTTP_ACCEPT'] = 'text/html,*/*'
|
|
end
|
|
|
|
describe 'catch all' do
|
|
before { get('/foo/bar') }
|
|
example { last_response.should be_ok }
|
|
example { headers['Content-Location'].should be == '/' }
|
|
example { headers['Cache-Control'].should include('must-revalidate') }
|
|
example { headers['Cache-Control'].should include('public') }
|
|
example { headers['Vary'].should include('Accept') }
|
|
end
|
|
|
|
describe 'assets' do
|
|
before { get('/favicon.ico') }
|
|
example { last_response.should be_ok }
|
|
example { headers['Content-Location'].should be == '/favicon.ico' }
|
|
example { headers['Cache-Control'].should_not include('must-revalidate') }
|
|
example { headers['Cache-Control'].should include('public') }
|
|
example { headers['Vary'].split(',').should_not include('Accept') }
|
|
end
|
|
|
|
describe 'version' do
|
|
before { get('/version') }
|
|
example { last_response.should be_ok }
|
|
example { headers['Content-Location'].should be == '/version' }
|
|
example { headers['Cache-Control'].should be == 'no-cache' }
|
|
example { headers['Vary'].split(',').should_not include('Accept') }
|
|
end
|
|
|
|
describe 'custom branch' do
|
|
context 'when passing custom branch as a param' do
|
|
before { get('/?custom-branch=foo') }
|
|
example { last_response.should be_ok }
|
|
example { last_response.body.should include('/assets/foo/styles/app.css') }
|
|
example { last_response.body.should include('/assets/foo/scripts/app.js') }
|
|
example { headers['Set-Cookie'].should include('custom_branch=foo') }
|
|
end
|
|
|
|
context 'disabling custom branch' do
|
|
before { get('/?disable-custom-branch=true') }
|
|
example { last_response.should be_ok }
|
|
example { last_response.body.should =~ %r{src="/[^\/]+/scripts/app.js} }
|
|
example { last_response.body.should_not include('/assets/true/styles/app.css') }
|
|
example { last_response.body.should_not include('/assets/foo/styles/app.css') }
|
|
example { last_response.body.should_not include('/assets/foo/scripts/app.js') }
|
|
example { headers['Set-Cookie'].should include('custom_branch=;') }
|
|
end
|
|
end
|
|
end
|