This commit is contained in:
@@ -17,6 +17,7 @@ import {
|
||||
import { createAcquisitionRepository } from '../../src/modules/acquisitions/repositories/acquisition-repository.js';
|
||||
import { createPricingRepository } from '../../src/modules/pricing/repositories/pricing-repository.js';
|
||||
import { createPricingRefreshJobRepository } from '../../src/modules/pricing/repositories/pricing-refresh-job-repository.js';
|
||||
import { createProviderMappingRepository } from '../../src/modules/pricing/repositories/provider-mapping-repository.js';
|
||||
import { createSaleRepository } from '../../src/modules/sales/repositories/sale-repository.js';
|
||||
|
||||
const connectionString = process.env.TEST_DATABASE_URL;
|
||||
@@ -33,6 +34,7 @@ const database = createDatabase(connectionString);
|
||||
const acquisitionRepository = createAcquisitionRepository(database.db);
|
||||
const pricingRepository = createPricingRepository(database.db);
|
||||
const pricingRefreshJobRepository = createPricingRefreshJobRepository(database.db);
|
||||
const providerMappingRepository = createProviderMappingRepository(database.db);
|
||||
const saleRepository = createSaleRepository(database.db);
|
||||
|
||||
async function createFixture() {
|
||||
@@ -73,7 +75,7 @@ async function createFixture() {
|
||||
}
|
||||
|
||||
beforeEach(async () => {
|
||||
await database.db.execute(sql`TRUNCATE pricing_refresh_jobs, market_value_overrides, market_valuations, pricing_observations, sale_items, sales, acquisitions, security_audit_events, inventory_items, products, conditions, condition_profiles, categories, sellers, users CASCADE`);
|
||||
await database.db.execute(sql`TRUNCATE pricing_provider_mappings, pricing_refresh_jobs, market_value_overrides, market_valuations, pricing_observations, sale_items, sales, acquisitions, security_audit_events, inventory_items, products, conditions, condition_profiles, categories, sellers, users CASCADE`);
|
||||
});
|
||||
|
||||
after(async () => {
|
||||
@@ -176,3 +178,18 @@ test('claims and completes a durable pricing refresh job', async () => {
|
||||
assert.deepEqual(completed.valuation, { valueMinor: 2500 });
|
||||
assert.equal(user.email, 'transactions@example.test');
|
||||
});
|
||||
|
||||
test('persists and disables seller-owned provider mappings', async () => {
|
||||
const { seller, product } = await createFixture();
|
||||
const created = await providerMappingRepository.createForSeller({
|
||||
productId: product.id,
|
||||
providerId: 'integration',
|
||||
mappingType: 'PRODUCT',
|
||||
externalIdentifier: 'catalog-1',
|
||||
}, seller.id);
|
||||
assert.equal(created.status, 'CREATED');
|
||||
assert.equal((await providerMappingRepository.listForSeller(product.id, seller.id)).length, 1);
|
||||
const disabled = await providerMappingRepository.disableForSeller(created.mapping.id, seller.id);
|
||||
assert.equal(disabled.status, 'DISABLED');
|
||||
assert.equal((await providerMappingRepository.listForSeller(product.id, seller.id)).length, 0);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user