u
This commit is contained in:
@@ -753,6 +753,7 @@ describe('store.article', () => {
|
||||
|
||||
await store.shipment.create(gid, {
|
||||
orderId: o2.id,
|
||||
lines: [{ sku: art.sku, amount: 5 }],
|
||||
});
|
||||
|
||||
res = await store.article.getBySku(gid, art.sku);
|
||||
|
||||
@@ -69,15 +69,10 @@ describe('store.shipment', () => {
|
||||
assert.equal(rest.lines[0].amount, 7);
|
||||
});
|
||||
|
||||
it('ships everything remaining when lines are omitted', async () => {
|
||||
it('rejects when lines are omitted or empty', async () => {
|
||||
const order = await makeOrder();
|
||||
await store.shipment.create(gid, { orderId: order.id, lines: [{ sku: 'SH-A', amount: 4 }] });
|
||||
const rest = await store.shipment.create(gid, { orderId: order.id });
|
||||
assert.deepEqual(
|
||||
rest.lines.map((l) => [l.sku, l.amount]).sort(),
|
||||
[['SH-A', 6], ['SH-B', 5]],
|
||||
);
|
||||
await assert.rejects(() => store.shipment.create(gid, { orderId: order.id }), { message: 'All items already shipped' });
|
||||
await assert.rejects(() => store.shipment.create(gid, { orderId: order.id }), { message: 'Invalid lines' });
|
||||
await assert.rejects(() => store.shipment.create(gid, { orderId: order.id, lines: [] }), { message: 'Invalid lines' });
|
||||
});
|
||||
|
||||
it('updates the order summary', async () => {
|
||||
@@ -88,7 +83,7 @@ describe('store.shipment', () => {
|
||||
await store.shipment.create(gid, { orderId: order.id, lines: [{ sku: 'SH-A', amount: 10 }] });
|
||||
assert.equal(summary().shipped_quantity, 10);
|
||||
assert.equal(summary().is_shipped, 0);
|
||||
await store.shipment.create(gid, { orderId: order.id });
|
||||
await store.shipment.create(gid, { orderId: order.id, lines: [{ sku: 'SH-B', amount: 5 }] });
|
||||
assert.equal(summary().shipped_quantity, 15);
|
||||
assert.equal(summary().is_shipped, 1);
|
||||
});
|
||||
@@ -120,18 +115,18 @@ describe('store.shipment', () => {
|
||||
() => store.shipment.create(gid, { orderId: order.id, lines: [{ sku: 'SH-A', amount: 0 }] }),
|
||||
{ message: 'Invalid lines' },
|
||||
);
|
||||
await assert.rejects(() => store.shipment.create(gid, { orderId: 999999 }), { message: 'Order not found' });
|
||||
await assert.rejects(() => store.shipment.create(gid, { orderId: 999999, lines: [{ sku: 'SH-A', amount: 1 }] }), { message: 'Order not found' });
|
||||
});
|
||||
|
||||
it('rejects orders without lines', async () => {
|
||||
const empty = await makeOrder([]);
|
||||
await assert.rejects(() => store.shipment.create(gid, { orderId: empty.id }), { message: 'Order has no lines' });
|
||||
await assert.rejects(() => store.shipment.create(gid, { orderId: empty.id, lines: [{ sku: 'SH-A', amount: 1 }] }), { message: 'Order has no lines' });
|
||||
});
|
||||
|
||||
it('cannot ship orders of another company', async () => {
|
||||
const order = await makeOrder();
|
||||
await assert.rejects(
|
||||
() => store.shipment.create(other.googleAuthId, { orderId: order.id }),
|
||||
() => store.shipment.create(other.googleAuthId, { orderId: order.id, lines: [{ sku: 'SH-A', amount: 1 }] }),
|
||||
{ message: 'Order not found' },
|
||||
);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user