dawarich/spec/models/export_spec.rb
Eugene Burmakin 8dd7ba8363 Fix specs
2025-06-26 20:05:26 +02:00

49 lines
1.3 KiB
Ruby

# frozen_string_literal: true
require 'rails_helper'
RSpec.describe Export, type: :model do
describe 'associations' do
it { is_expected.to belong_to(:user) }
end
describe 'enums' do
it { is_expected.to define_enum_for(:status).with_values(created: 0, processing: 1, completed: 2, failed: 3) }
it { is_expected.to define_enum_for(:file_format).with_values(json: 0, gpx: 1, archive: 2) }
it { is_expected.to define_enum_for(:file_type).with_values(points: 0, user_data: 1) }
end
describe 'callbacks' do
describe 'after_commit' do
context 'when the export is created' do
let(:export) { build(:export, file_type: :points) }
it 'enqueues the ExportJob' do
expect(ExportJob).to receive(:perform_later)
export.save!
end
context 'when the export is a user data export' do
let(:export) { build(:export, file_type: :user_data) }
it 'does not enqueue the ExportJob' do
expect(ExportJob).not_to receive(:perform_later).with(export.id)
export.save!
end
end
end
context 'when the export is destroyed' do
let(:export) { create(:export) }
it 'removes the attached file' do
expect(export.file).to receive(:purge_later)
export.destroy!
end
end
end
end
end