require 'rails_helper' describe Job do let(:job) { create(:job) } let(:mailshop) { create(:mailshop, name: 'Sisk Mailshop') } let(:version_params) do { name: 'U2', mailshop: mailshop, quantity: 100_500, mail_date: DateTime.new(2000, 10, 10), seeds_sent: 100, seeds_scanned: 500 } end describe 'callbacks' do let(:version) { build(:version, version_params) } describe 'after adding version' do it "updates job's overall statistic" do expected_statistic = { 'seeds_sent' => 100, 'seeds_scanned' => 500, 'total_quantity' => 100, 'mailshop' => 'Sisk Mailshop', 'mail_date' => '2000-10-10T00:00:00.000Z' } job.update_attribute(:versions, [version]) expect(job.overall_statistic).to match(expected_statistic) end end end describe '#grouped_scfs' do let!(:version) { create(:version, version_params.merge(job: job)) } let!(:seed) { create(:seed, job: job, version: version) } it 'returns grouped scfs with seeds data' do expected_scfs = [{ scf: seed.scf, seeds_data: { seeds_scanned: 1 } }] expect(job.grouped_scfs).to match(expected_scfs) end end end