Fix test failures caused by faulty id generator in ChecksImport examples

This commit is contained in:
Ryan Lue 2019-01-30 19:50:37 +08:00 committed by Martin Edenhofer
parent 27d027773e
commit 85d6d78eea

View file

@ -1,7 +1,19 @@
RSpec.shared_examples 'ApplicationModel::ChecksImport' do RSpec.shared_examples 'ApplicationModel::ChecksImport' do
describe '#id (for referential integrity during OTRS/Zendesk import)' do describe '#id (for referential integrity during OTRS/Zendesk import)' do
subject { build(described_class.name.underscore, id: unused_id) } subject { build(described_class.name.underscore, id: next_id + 1) }
let(:unused_id) { (described_class.pluck(:id).max || 1) * 2 }
let(:next_id) do
case ActiveRecord::Base.connection_config[:adapter]
when 'mysql2'
ActiveRecord::Base.connection.execute(<<~QUERY).first.first
SELECT max(auto_increment) FROM information_schema.tables WHERE table_name='#{described_class.table_name}'
QUERY
when 'postgresql'
ActiveRecord::Base.connection.execute(<<~QUERY).first['last_value'].next
SELECT last_value FROM #{described_class.table_name}_id_seq
QUERY
end
end
context 'when Setting.get("system_init_done") is false (regardless of import_mode)' do context 'when Setting.get("system_init_done") is false (regardless of import_mode)' do
before { Setting.set('system_init_done', false) } before { Setting.set('system_init_done', false) }