Nastaveni prezije nasazeni: seed/records.json se pri prazdnem ulozisti nacte misto ukazkovych dat (zive uloziste se nikdy neprepisuje). Soubor nese soucasny stav produkce (firmy s provozovatelem, role, typ ticketu, akce, widgety, skupiny, rozlozeni). Novy GET /api/admin/export a skript npm run seed:export pro dalsi exporty, Dockerfile slozku kopiruje. Vykonnostni testy (npm run test:perf) nad 200 firmami a 10 000 tickety a zatezovy skript (npm run load) proti bezici instanci vcetne davky udalosti na webhook. Mereni odhalilo strop workeru: po obsazeni vsech mist spal sekundu, takze fronta odbavila nejvys 4 behy za sekundu. Ted ceka na prvni dokonceny beh: 500 udalosti za 1,3 s (395 behu/s). Strop posluchacu streamu zvednut na 2 000. Dialogy: prekryv modalu a menu v portalu bez backdrop-blur, tecka Zive pulzuje jen pri navazovani spojeni - rozmazani cele obrazovky pod trvalou animaci sekalo video vedle portalu. Bublina udalosti drzi 0,5 s. Dokumentace 14, 19, 20, 22, 04, 01, 03, 15 a 99 aktualizovana. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
33 lines
959 B
TypeScript
33 lines
959 B
TypeScript
import path from 'node:path';
|
|
import { defineConfig } from 'vitest/config';
|
|
|
|
/**
|
|
* Vykonove testy (`npm run test:perf`). Bezi zvlast od `npm test`:
|
|
* stavi si desetitisice zaznamu, trvaji desitky sekund a jejich rozpocty
|
|
* zavisi na stroji. V beznem behu by jen zdrzovaly a obcas padaly.
|
|
*
|
|
* Soubory jdou **po jednom** (`fileParallelism: false`): dva merici testy
|
|
* vedle sebe by si braly procesor a cisla by nesla srovnat.
|
|
*/
|
|
|
|
/** Priprava dat trva dele nez bezny test, proto vyssi stropy. */
|
|
const PERF_TEST_TIMEOUT_MS = 120_000;
|
|
const PERF_HOOK_TIMEOUT_MS = 120_000;
|
|
|
|
export default defineConfig({
|
|
test: {
|
|
include: ['tests/perf/**/*.test.ts'],
|
|
environment: 'node',
|
|
setupFiles: ['tests/setup.ts'],
|
|
isolate: true,
|
|
fileParallelism: false,
|
|
testTimeout: PERF_TEST_TIMEOUT_MS,
|
|
hookTimeout: PERF_HOOK_TIMEOUT_MS,
|
|
},
|
|
resolve: {
|
|
alias: {
|
|
'@shared': path.resolve(import.meta.dirname, 'src/shared'),
|
|
},
|
|
},
|
|
});
|