fix: počítání částek v haléřích z důvodu přesnosti
CI / Generate TypeScript types (push) Successful in 21s
CI / Build server (push) Successful in 25s
CI / Server unit tests (push) Successful in 55s
CI / Build client (push) Successful in 33s
CI / Playwright E2E tests (push) Successful in 1m20s
CI / Build and push Docker image (push) Successful in 35s
CI / Notify (push) Successful in 2s

This commit is contained in:
2026-05-07 13:05:04 +02:00
parent d91c8db49c
commit 8aef00ab05
18 changed files with 370 additions and 380 deletions
+4 -4
View File
@@ -31,8 +31,8 @@ test('saláty mají name a ingredients', async () => {
test('cena salátu zahrnuje pevný příplatek 13 Kč za obal', async () => {
const salaty = await downloadSalaty(false);
// Caesar sticker price = 129, box = 13
expect(salaty[0].price).toBe(129 + 13);
// Řecký sticker price = 119, box = 13
expect(salaty[1].price).toBe(119 + 13);
// Caesar sticker price = 129, box = 13 → (129 + 13) * 100 haléřů
expect(salaty[0].price).toBe((129 + 13) * 100);
// Řecký sticker price = 119, box = 13 → (119 + 13) * 100 haléřů
expect(salaty[1].price).toBe((119 + 13) * 100);
});
+5 -5
View File
@@ -28,8 +28,8 @@ beforeEach(() => {
const VALID_BODY = {
recipients: [
{ login: 'uzivatel1', purpose: 'Pizza Margherita', amount: 149 },
{ login: 'uzivatel2', purpose: 'Pizza Diavola', amount: 179 },
{ login: 'uzivatel1', purpose: 'Pizza Margherita', amount: 14900 },
{ login: 'uzivatel2', purpose: 'Pizza Diavola', amount: 17900 },
],
bankAccount: '19-2000145399/0800',
bankAccountHolder: 'Jan Novák',
@@ -76,17 +76,17 @@ test('POST /generate vrátí 400 pro zápornou částku', async () => {
expect(res.body.error).toContain('částku');
});
test('POST /generate vrátí 400 pro částku s více než 2 desetinnými místy', async () => {
test('POST /generate vrátí 400 pro necelou částku', async () => {
const body = {
...VALID_BODY,
recipients: [{ login: 'uzivatel1', purpose: 'Pizza', amount: 149.999 }],
recipients: [{ login: 'uzivatel1', purpose: 'Pizza', amount: 149.5 }],
};
const res = await request(buildApp())
.post('/api/qr/generate')
.set('Authorization', TOKEN)
.send(body);
expect(res.status).toBe(400);
expect(res.body.error).toContain('desetinná');
expect(res.body.error).toContain('částku');
});
test('POST /generate vrátí 400 pro příjemce bez login', async () => {