mirror of
https://github.com/Freika/dawarich.git
synced 2026-01-11 09:41:40 -05:00
Create sample import after user is created
This commit is contained in:
parent
51618ec191
commit
4a6c5bf97c
3 changed files with 2630 additions and 0 deletions
|
|
@ -16,6 +16,7 @@ class User < ApplicationRecord
|
||||||
has_many :trips, dependent: :destroy
|
has_many :trips, dependent: :destroy
|
||||||
|
|
||||||
after_create :create_api_key
|
after_create :create_api_key
|
||||||
|
after_create :import_sample_points
|
||||||
after_commit :activate, on: :create, if: -> { DawarichSettings.self_hosted? }
|
after_commit :activate, on: :create, if: -> { DawarichSettings.self_hosted? }
|
||||||
before_save :sanitize_input
|
before_save :sanitize_input
|
||||||
|
|
||||||
|
|
@ -116,4 +117,22 @@ class User < ApplicationRecord
|
||||||
settings['photoprism_url']&.gsub!(%r{/+\z}, '')
|
settings['photoprism_url']&.gsub!(%r{/+\z}, '')
|
||||||
settings.try(:[], 'maps')&.try(:[], 'url')&.strip!
|
settings.try(:[], 'maps')&.try(:[], 'url')&.strip!
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def import_sample_points
|
||||||
|
return unless Rails.env.development? ||
|
||||||
|
Rails.env.production? ||
|
||||||
|
(Rails.env.test? && ENV['IMPORT_SAMPLE_POINTS'])
|
||||||
|
|
||||||
|
raw_data = Hash.from_xml(
|
||||||
|
File.read(Rails.root.join('lib/assets/sample_points.gpx'))
|
||||||
|
)
|
||||||
|
|
||||||
|
import = imports.create(
|
||||||
|
name: 'DELETE_ME_this_is_a_demo_import_DELETE_ME',
|
||||||
|
source: 'gpx',
|
||||||
|
raw_data:
|
||||||
|
)
|
||||||
|
|
||||||
|
ImportJob.perform_later(id, import.id)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
|
||||||
2589
lib/assets/sample_points.gpx
Normal file
2589
lib/assets/sample_points.gpx
Normal file
File diff suppressed because it is too large
Load diff
|
|
@ -55,6 +55,28 @@ RSpec.describe User, type: :model do
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
describe '#import_sample_points' do
|
||||||
|
before do
|
||||||
|
stub_const('IMPORT_SAMPLE_POINTS', true)
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'creates a sample import and enqueues an import job' do
|
||||||
|
expect do
|
||||||
|
user = create(:user)
|
||||||
|
# Explicitly call the method since the callback is disabled in test env
|
||||||
|
user.send(:import_sample_points)
|
||||||
|
|
||||||
|
# Check if an import was created with the expected name
|
||||||
|
expect(user.imports.count).to eq(1)
|
||||||
|
expect(user.imports.first.name).to eq('DELETE_ME_this_is_a_demo_import_DELETE_ME')
|
||||||
|
expect(user.imports.first.source).to eq('gpx')
|
||||||
|
|
||||||
|
# Check if the ImportJob was enqueued with correct parameters
|
||||||
|
expect(ImportJob).to have_been_enqueued.with(user.id, user.imports.first.id)
|
||||||
|
end.to change(Import, :count).by(1)
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
describe 'methods' do
|
describe 'methods' do
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue