Files
fizzy/test/models/account/import_test.rb
T
Stanko K.R. 27c73ff42b Rename validate to check
Validate is an ActiveModel method, overriding it could have unintended side-effects so I opted to rename it
2026-02-02 12:36:48 +01:00

51 lines
1.6 KiB
Ruby

require "test_helper"
class Account::ImportTest < ActiveSupport::TestCase
test "export and import round-trip preserves account data" do
source_account = accounts("37s")
exporter = users(:david)
identity = exporter.identity
source_account_digest = account_digest(source_account)
export = Account::Export.create!(account: source_account, user: exporter)
export.build
assert export.completed?
export_tempfile = Tempfile.new([ "export", ".zip" ])
export.file.open { |f| FileUtils.cp(f.path, export_tempfile.path) }
source_account.destroy!
target_account = Account.create_with_owner(account: { name: "Import Test" }, owner: { identity: identity, name: exporter.name })
import = Account::Import.create!(identity: identity, account: target_account)
Current.set(account: target_account) do
import.file.attach(io: File.open(export_tempfile.path), filename: "export.zip", content_type: "application/zip")
end
import.check
assert_not import.failed?
import.process
assert import.completed?
assert_equal source_account_digest, account_digest(target_account)
ensure
export_tempfile&.close
export_tempfile&.unlink
end
private
def account_digest(account)
{
name: account.name,
board_count: Board.where(account: account).count,
column_count: Column.where(account: account).count,
card_count: Card.where(account: account).count,
comment_count: Comment.where(account: account).count,
tag_count: Tag.where(account: account).count
}
end
end