75 lines
1.9 KiB
Ruby
75 lines
1.9 KiB
Ruby
# encoding: utf-8
|
|
|
|
require 'rails_helper'
|
|
|
|
describe Stdout::MultiFile do
|
|
let(:stdout) { Stdout::MultiFile.new('spec/fixtures/stdout.decompressed',
|
|
'spec/fixtures/stdout.time.decompressed') }
|
|
|
|
describe '#each' do
|
|
it 'yields for each frame with delay and data' do
|
|
expect { |b| stdout.each(&b) }.
|
|
to yield_successive_args([0.5, 'foobar'],
|
|
[1.0, "bazqux\xC5"],
|
|
[2.0, "\xBCółć"])
|
|
end
|
|
end
|
|
|
|
end
|
|
|
|
describe Stdout::SingleFile do
|
|
let(:stdout) { Stdout::SingleFile.new('spec/fixtures/1/asciicast.json') }
|
|
|
|
describe '#each' do
|
|
it 'yields for each frame with delay and data' do
|
|
expect { |b| stdout.each(&b) }.
|
|
to yield_successive_args([1.234567, 'foo bar'],
|
|
[5.678987, 'baz qux'],
|
|
[3.456789, 'żółć jaźń'])
|
|
end
|
|
end
|
|
|
|
end
|
|
|
|
describe Stdout::Buffered do
|
|
let(:inner) { double('inner') }
|
|
let(:stdout) { Stdout::Buffered.new(inner) }
|
|
|
|
before do
|
|
allow(inner).to receive(:each)
|
|
.and_yield(0.200000, '!')
|
|
.and_yield(0.010000, 'a')
|
|
.and_yield(0.006000, 'b')
|
|
.and_yield(0.000600, 'c')
|
|
.and_yield(0.000060, 'd')
|
|
.and_yield(0.000006, 'e')
|
|
.and_yield(1.000000, 'f')
|
|
.and_yield(0.016665, 'g')
|
|
.and_yield(0.000002, 'h')
|
|
.and_yield(0.016664, 'i')
|
|
.and_yield(0.000002, 'j')
|
|
.and_yield(0.016666, 'k')
|
|
.and_yield(0.016667, 'l')
|
|
.and_yield(0.000001, 'm')
|
|
end
|
|
|
|
describe '#each' do
|
|
let(:yield_args) { [
|
|
[0.200000, '!'],
|
|
[0.016666, 'abcde'],
|
|
[1.000000, 'f'],
|
|
[0.016665, 'g'],
|
|
[0.016666, 'hi'],
|
|
[0.000002, 'j'],
|
|
[0.016666, 'k'],
|
|
[0.016667, 'l'],
|
|
[0.000001, 'm']
|
|
] }
|
|
|
|
it 'yields for each frame with delay and data at 60hz freq tops' do
|
|
expect { |b| stdout.each(&b) }.to yield_successive_args(*yield_args)
|
|
end
|
|
end
|
|
|
|
end
|