dawarich/spec/jobs/import_job_spec.rb

42 lines
1.1 KiB
Ruby
Raw Normal View History

# frozen_string_literal: true
require 'rails_helper'
RSpec.describe ImportJob, type: :job do
describe '#perform' do
subject(:perform) { described_class.new.perform(user.id, import.id) }
let(:user) { create(:user) }
let!(:import) { create(:import, user:, name: 'owntracks_export.json') }
it 'creates points' do
expect { perform }.to change { Point.count }.by(9)
end
2024-04-02 17:26:26 -04:00
it 'calls Stats::CalculatingJob' do
2024-12-06 10:52:36 -05:00
# Timestamp of the first point in the "2024-03.rec" fixture file
expect(Stats::CalculatingJob).to receive(:perform_later).with(user.id, 2024, 3)
2024-04-02 17:26:26 -04:00
perform
end
2024-07-04 16:20:12 -04:00
it 'creates a notification' do
expect { perform }.to change { Notification.count }.by(1)
end
context 'when there is an error' do
before do
allow_any_instance_of(OwnTracks::ExportParser).to receive(:call).and_raise(StandardError)
end
it 'does not create points' do
expect { perform }.not_to(change { Point.count })
end
it 'creates a notification' do
expect { perform }.to change { Notification.count }.by(1)
end
end
end
end