@@ -7,8 +7,12 @@ import { StockService } from '../stock/stock.service';
|
||||
type Device = { id: string; venueId: string; revokedAt: null; lastSeenAt: Date };
|
||||
type SyncResult = Awaited<ReturnType<DevicesService['sync']>>;
|
||||
|
||||
// In the past: a time ahead of the server clock would be capped
|
||||
const at = (minutes: number) => new Date(Date.UTC(2026, 8, 24, 20, minutes)).toISOString();
|
||||
// Yesterday at 20:00 UTC. In the past, as a time ahead of the server clock would be capped, and recent, as a new
|
||||
// tablet's first settlements feed only goes back a few days
|
||||
const yesterday = new Date(Date.now() - 24 * 60 * 60 * 1000);
|
||||
const at = (minutes: number) => new Date(Date.UTC(
|
||||
yesterday.getUTCFullYear(), yesterday.getUTCMonth(), yesterday.getUTCDate(), 20, minutes,
|
||||
)).toISOString();
|
||||
|
||||
function setup({ seeded = true } = {}) {
|
||||
const prisma = createFakePrisma();
|
||||
@@ -509,6 +513,16 @@ describe('DevicesService.sync: website product changes reach the tablets', () =>
|
||||
expect(result.stock).toEqual([expect.objectContaining({ productId: created.productId, stock: 24 })]);
|
||||
});
|
||||
|
||||
it('never sends the buy price or desired stock to the tablets', async () => {
|
||||
const { sync, tabletA, stock } = setupWithWebsite();
|
||||
|
||||
await stock.createProduct('v1', { name: 'Ice Tea', priceInCents: 280, buyPriceInCents: 110, stock: 4, desiredStock: 24 }, admin);
|
||||
const result = await sync(tabletA);
|
||||
|
||||
expect(result.catalog![0]).not.toHaveProperty('buyPriceInCents');
|
||||
expect(result.catalog![0]).not.toHaveProperty('desiredStock');
|
||||
});
|
||||
|
||||
it('marks an archived product, and still counts a sale from a tablet that had not synced yet', async () => {
|
||||
const { sync, tabletA, stock, prisma } = setupWithWebsite();
|
||||
addProduct(prisma, 'cola', { stock: 20, countedAt: new Date('2026-01-01') });
|
||||
|
||||
Reference in New Issue
Block a user