diff --git a/apps/backend/src/services/fulfillment/fulfillment-routing.integration.test.ts b/apps/backend/src/services/fulfillment/fulfillment-routing.integration.test.ts index 66db5f89..189b3570 100644 --- a/apps/backend/src/services/fulfillment/fulfillment-routing.integration.test.ts +++ b/apps/backend/src/services/fulfillment/fulfillment-routing.integration.test.ts @@ -34,6 +34,7 @@ test( const orderIds: number[] = [] const orderItemIds: number[] = [] const internalSkus = [manualSku, missingAffiliateSku, voucherSku] + let generatedVoucherProductId: number | null = null async function createPendingOrderItem(sku: string) { const order = await query<{ id: number }>( @@ -118,6 +119,7 @@ test( assert.equal(switchedItem.rows[0]?.fulfillment_channel, 'third_party_voucher') assert.equal(switchedItem.rows[0]?.original_channel, 'manual') assert.ok(switchedItem.rows[0]?.canonical_sku?.startsWith('tpv:')) + generatedVoucherProductId = Number(switchedItem.rows[0]?.canonical_product_id || 0) || null const missingAffiliateItemId = await createPendingOrderItem(missingAffiliateSku) const affiliateFailed = await assignChannelByInternalSku({ @@ -193,6 +195,24 @@ test( WHERE provider = '91kaquan' AND shop_id = $1 AND match_key = ANY($2::text[])`, [shopId, internalSkus], ) + if (generatedVoucherProductId) { + await query(`DELETE FROM sales_daily_facts WHERE canonical_product_id = $1`, [ + generatedVoucherProductId, + ]) + await query(`DELETE FROM cost_snapshots WHERE canonical_product_id = $1`, [ + generatedVoucherProductId, + ]) + await query(`DELETE FROM channel_product_mappings WHERE canonical_product_id = $1`, [ + generatedVoucherProductId, + ]) + await query(`DELETE FROM cost_versions WHERE canonical_product_id = $1`, [ + generatedVoucherProductId, + ]) + await query(`DELETE FROM product_catalog WHERE id = $1 AND canonical_sku = $2`, [ + generatedVoucherProductId, + `tpv:${manualSku}`, + ]) + } await closeDb() } },