travis-api/spec/v3/services/log/find_spec.rb
Joe Corcoran 316947b7c0 Add simplest log endpoint
Just an excuse to get all the boilerplate classes in place :)
2016-07-19 18:10:34 +02:00

46 lines
1.4 KiB
Ruby

require 'spec_helper'
describe Travis::API::V3::Services::Log::Find, set_app: true do
let(:user) { Travis::API::V3::Models::User.find_by_login('svenfuchs') }
let(:repo) { Travis::API::V3::Models::Repository.where(owner_name: user.login, name: 'minimal').first }
let(:build) { repo.builds.last }
let(:job) { Travis::API::V3::Models::Build.find(build.id).jobs.last }
let(:token) { Travis::Api::App::AccessToken.create(user: user, app_id: 1) }
let(:headers) { { 'HTTP_AUTHORIZATION' => "token #{token}" } }
let(:parsed_body) { JSON.load(body) }
context 'when log stored in db' do
describe 'returns log as plain text' do
let(:log) { job.log }
before { get("/v3/job/#{job.id}/log", {}, headers) }
example { expect(last_response).to be_ok }
example do
expect(parsed_body).to eq(
'@href' => "/v3/job/#{job.id}/log",
'@representation' => 'standard',
'@type' => 'log',
'content' => nil,
'id' => log.id
)
end
end
describe 'returns log as chunked json'
end
context 'when log not found in db but stored on S3' do
describe 'returns log as plain text'
describe 'returns log as chunked json'
end
context 'when log not found anywhere' do
describe 'does not return log'
end
context 'when log removed by user' do
describe 'does not return log'
end
end