feat(ai-image): AI生图开发
This commit is contained in:
@@ -179,6 +179,69 @@ describe('扩展授权与采集 HTTP 集成测试', () => {
|
||||
assert.equal(first.body.data.collection_item.status, 'ready_for_edit');
|
||||
assert.equal(first.body.data.materialization.pending_selection, 1);
|
||||
assert.equal(first.body.data.materialization.queued, 0);
|
||||
const source1688 = {
|
||||
source: {
|
||||
platform: '1688', itemKey: '1688-price-image-test',
|
||||
canonicalUrl: 'https://detail.1688.com/offer/123456789.html',
|
||||
collectedAt: new Date().toISOString(), parserVersion: '1688-test',
|
||||
},
|
||||
common: { attributes: [], categories: [] },
|
||||
variantAxes: [],
|
||||
variants: [{
|
||||
sourceVariantKey: '6100454176961', sourceSku: '6100454176961',
|
||||
displayName: '六代目卡卡西25cm', selections: [],
|
||||
sourcePrice: { amount: '31.335', currencyCode: 'CNY' },
|
||||
confidence: 'verified', evidenceRefs: ['1688:sku-map'],
|
||||
}],
|
||||
assets: [{
|
||||
url: 'https://cbu01.alicdn.com/sku.jpg', role: 'source_sku',
|
||||
relation: 'axis_value', variantSourceKey: '6100454176961',
|
||||
sortOrder: 0, evidenceRef: '1688:sku-map',
|
||||
}],
|
||||
evidence: [{ ref: '1688:sku-map', kind: 'state', path: 'skuModel.skuInfoMap' }],
|
||||
};
|
||||
const captured1688 = await request('/api/extension/materials', {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
Authorization: `Bearer ${webAccessToken}`,
|
||||
'Idempotency-Key': randomUUID(),
|
||||
},
|
||||
body: JSON.stringify(source1688),
|
||||
});
|
||||
assert.equal(captured1688.response.status, 201);
|
||||
const associated1688 = await database.workspaceTransaction(workspaceId, async (tx) =>
|
||||
tx.query<{ purchase_cost_cny: string; source_variant_id: string; variant_id: string }>(
|
||||
`SELECT v.purchase_cost_cny::text, t.source_variant_id, v.id AS variant_id
|
||||
FROM atlas.product_variants v
|
||||
JOIN atlas.collection_asset_transfers t ON t.product_id = v.product_id
|
||||
WHERE v.product_id = $1 AND t.role = 'source_sku'`,
|
||||
[captured1688.body.data.product_id],
|
||||
),
|
||||
);
|
||||
assert.equal(associated1688.rows[0]?.purchase_cost_cny, '31.3400');
|
||||
assert.equal(associated1688.rows[0]?.source_variant_id, associated1688.rows[0]?.variant_id);
|
||||
const refreshed1688 = await request('/api/extension/materials', {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
Authorization: `Bearer ${webAccessToken}`,
|
||||
'Idempotency-Key': randomUUID(),
|
||||
},
|
||||
body: JSON.stringify({
|
||||
...source1688,
|
||||
variants: [{
|
||||
...source1688.variants[0],
|
||||
sourcePrice: { amount: '32.525', currencyCode: 'CNY' },
|
||||
}],
|
||||
}),
|
||||
});
|
||||
assert.equal(refreshed1688.response.status, 200);
|
||||
const updatedCost = await database.workspaceTransaction(workspaceId, async (tx) =>
|
||||
tx.query<{ purchase_cost_cny: string }>(
|
||||
`SELECT purchase_cost_cny::text FROM atlas.product_variants WHERE product_id = $1`,
|
||||
[captured1688.body.data.product_id],
|
||||
),
|
||||
);
|
||||
assert.equal(updatedCost.rows[0]?.purchase_cost_cny, '32.5300');
|
||||
const platforms = await request('/api/platforms', {
|
||||
headers: { Authorization: `Bearer ${webAccessToken}` },
|
||||
});
|
||||
@@ -328,7 +391,7 @@ describe('扩展授权与采集 HTTP 集成测试', () => {
|
||||
variant.source_variant_key === '123456789',
|
||||
);
|
||||
assert.equal(originalVariant.display_name, '人工确认 SKU');
|
||||
assert.equal(originalVariant.purchase_cost_cny, '88.8000');
|
||||
assert.equal(originalVariant.purchase_cost_cny, '88.80');
|
||||
assert.equal(originalVariant.listing.offer_id, 'manual-offer-001');
|
||||
const discoveredVariant = editorAfterRefresh.body.data.variants.find(
|
||||
(variant: { source_variant_key: string }) =>
|
||||
|
||||
Reference in New Issue
Block a user