Permit variant records in imports

This commit is contained in:
Stanko K.R.
2026-03-23 12:30:40 +01:00
parent 6808250c8f
commit 49fbb82676
2 changed files with 49 additions and 4 deletions
+40
View File
@@ -91,6 +91,46 @@ class Account::ExportTest < ActiveSupport::TestCase
end
end
test "build includes variant records and their attachments in zip" do
blob = ActiveStorage::Blob.create_and_upload!(
io: file_fixture("moon.jpg").open,
filename: "moon.jpg",
content_type: "image/jpeg"
)
variant_record = ActiveStorage::VariantRecord.create!(
blob: blob,
variation_digest: "test_digest"
)
variant_blob = ActiveStorage::Blob.create_and_upload!(
io: file_fixture("moon.jpg").open,
filename: "moon_variant.jpg",
content_type: "image/jpeg"
)
ActiveStorage::Attachment.create!(
name: "image",
record: variant_record,
blob: variant_blob
)
export = Account::Export.create!(account: Current.account, user: users(:david))
export.build
assert export.completed?
export.file.open do |file|
reader = ZipKit::FileReader.read_zip_structure(io: file)
filenames = reader.map(&:filename)
variant_entries = filenames.select { |f| f.start_with?("data/active_storage_variant_records/") }
variant_ids = variant_entries.map { |f| File.basename(f, ".json") }
assert_includes variant_ids, variant_record.id, "Export should include variant record"
attachment_entries = filenames.select { |f| f.start_with?("data/active_storage_attachments/") }
attachment_ids = attachment_entries.map { |f| File.basename(f, ".json") }
variant_attachment = variant_record.reload.image_attachment
assert_includes attachment_ids, variant_attachment.id, "Export should include variant attachment"
end
end
test "build succeeds when rich text references missing blob" do
blob = ActiveStorage::Blob.create_and_upload!(
io: file_fixture("moon.jpg").open,