u
This commit is contained in:
@@ -65,14 +65,17 @@ describe('store.delivery', () => {
|
||||
assert.notEqual(a.number, b.number);
|
||||
});
|
||||
|
||||
it('allows a delivery without supplier', async () => {
|
||||
const d = await store.delivery.create(gid, { date: isoNow(), lines: [] });
|
||||
assert.equal(d.supplierId, null);
|
||||
it('rejects a delivery without supplier', async () => {
|
||||
await assert.rejects(
|
||||
() => store.delivery.create(gid, { date: isoNow(), lines: [] }),
|
||||
{ message: 'No supplier selected' },
|
||||
);
|
||||
});
|
||||
|
||||
it('validates input', async () => {
|
||||
await assert.rejects(() => create({ date: 'garbage' }), { message: 'Invalid delivery' });
|
||||
await assert.rejects(() => create({ createdAt: 'garbage' }), { message: 'Invalid delivery' });
|
||||
await assert.rejects(() => create({ supplierId: null }), { message: 'No supplier selected' });
|
||||
await assert.rejects(() => create({ supplierId: '1' }), { message: 'Invalid supplierId' });
|
||||
await assert.rejects(() => create({ supplierId: 999999 }), { message: 'Supplier not found' });
|
||||
await assert.rejects(() => create({ lines: 'x' }), { message: 'Invalid lines' });
|
||||
@@ -113,8 +116,10 @@ describe('store.delivery', () => {
|
||||
const cleared = await store.delivery.update(gid, d.id, { externalNumber: ' ' });
|
||||
assert.equal(cleared.externalNumber, null);
|
||||
|
||||
const noSupplier = await store.delivery.update(gid, d.id, { supplierId: null });
|
||||
assert.equal(noSupplier.supplierId, null);
|
||||
await assert.rejects(
|
||||
() => store.delivery.update(gid, d.id, { supplierId: null }),
|
||||
{ message: 'No supplier selected' },
|
||||
);
|
||||
});
|
||||
|
||||
it('replaces lines of an unbooked delivery', async () => {
|
||||
@@ -133,6 +138,15 @@ describe('store.delivery', () => {
|
||||
assert.equal((await store.delivery.getById(gid, d.id)).lines[0].amount, 4);
|
||||
});
|
||||
|
||||
it('refuses duplicate delivery numbers on update', async () => {
|
||||
const d1 = await create();
|
||||
const d2 = await create();
|
||||
await assert.rejects(
|
||||
() => store.delivery.update(gid, d2.id, { number: d1.number }),
|
||||
{ message: 'Delivery number already exists' },
|
||||
);
|
||||
});
|
||||
|
||||
it('validates input', async () => {
|
||||
const d = await create();
|
||||
await assert.rejects(() => store.delivery.update(gid, d.id, {}), { message: 'Invalid delivery' });
|
||||
@@ -287,7 +301,8 @@ describe('store.delivery', () => {
|
||||
const rt = await createTenant(store, { name: 'Delivery Rebuild GmbH' });
|
||||
await store.warehouse.create(rt.googleAuthId, { name: 'Rebuild WH' });
|
||||
await createArticle(store, rt, { sku: 'RB-1', track_stock: true });
|
||||
const d = await store.delivery.create(rt.googleAuthId, { date: isoNow(), lines: [line('RB-1', 3)] });
|
||||
const rs = await store.supplier.create(rt.googleAuthId, { name: 'Rebuild Supplier' });
|
||||
const d = await store.delivery.create(rt.googleAuthId, { supplierId: rs.id, date: isoNow(), lines: [line('RB-1', 3)] });
|
||||
await store.delivery.book(rt.googleAuthId, d.id);
|
||||
|
||||
const before = await store.delivery.list(rt.googleAuthId);
|
||||
|
||||
Reference in New Issue
Block a user