gitlab-org--gitlab-foss/spec/serializers/build_trace_entity_spec.rb

45 lines
1.1 KiB
Ruby

# frozen_string_literal: true
require 'spec_helper'
RSpec.describe BuildTraceEntity do
let(:build) { build_stubbed(:ci_build) }
let(:request) { double('request') }
let(:stream) do
Gitlab::Ci::Trace::Stream.new do
StringIO.new('the-trace')
end
end
let(:build_trace) do
Ci::BuildTrace.new(build: build, stream: stream, state: nil)
end
let(:entity) do
described_class.new(build_trace, request: request)
end
subject { entity.as_json }
it 'includes build attributes' do
expect(subject[:id]).to eq(build.id)
expect(subject[:status]).to eq(build.status)
expect(subject[:complete]).to eq(build.complete?)
end
it 'includes trace metadata' do
expect(subject).to include(:state)
expect(subject).to include(:append)
expect(subject).to include(:truncated)
expect(subject).to include(:offset)
expect(subject).to include(:size)
expect(subject).to include(:total)
end
it 'includes the trace content in json' do
expect(subject[:lines]).to eq([
{ offset: 0, content: [{ text: 'the-trace' }] }
])
end
end