require 'rails_helper' describe FrameDiffList do let(:frame_diff_list) { described_class.new(frames) } let(:frames) { [[1.5, frame_1], [0.5, frame_2]] } let(:frame_1) { double('frame_1', :diff => diff_1) } let(:frame_2) { double('frame_2', :diff => diff_2) } let(:diff_1) { double('diff_1') } let(:diff_2) { double('diff_2') } describe '#each' do subject { frame_diff_list.to_a } it 'maps each frame to its diff' do expect(subject).to eq([[1.5, diff_1], [0.5, diff_2]]) end it 'diffs the first frame with nil' do subject expect(frame_1).to have_received(:diff).with(nil) end it 'diffs the subsequent frames with the previous ones' do subject expect(frame_2).to have_received(:diff).with(frame_1) end end end