14 Commits

Author SHA1 Message Date
Adaline Simonian
23a3862ca0
test: introduce snapshot-based smoke tests
- Adds a new test suite with Docker-based smoke tests for all locales.
  Can be run using the ./smoketest.sh script.
- Replaces all calls to Math.random() with a new helper that returns 0.5
  in snapshot testing mode, ensuring deterministic snapshots.
- Similarly replaces all calls to new Date() and Date.now() with new
  helpers that return a fixed date in snapshot testing mode.
- Replaces checks against NODE_ENV with APP_ENV, to ensure that the
  bundles can be built with Nuxt for testing without losing code that
  would otherwise be stripped out by production optimizations.
- Adds a database init script that can be used to initialize the
  database with a single admin user and a long-lived JWT token for use
  in automation tests.
- Adds a JWT decoding/encoding CLI tool for debugging JWTs.

Note: Snapshots are not checked in, and must be generated manually. See
test/__snapshots__/.gitignore for more information.
2025-02-02 23:11:19 -08:00
Valentyne Stigloher
71a562bba9 (nuxt) do not use import.meta.url directly to reference other files as this breaks in Nitro, use current working directory as convention 2024-09-12 10:11:25 +02:00
Valentyne Stigloher
f69aec7998 (sentry) replace some console.error with Sentry.captureException 2024-03-05 18:19:34 +01:00
Valentyne Stigloher
f8156d5204 (sentry) activate sentry in server scripts 2024-03-05 18:19:34 +01:00
Valentyne Stigloher
7ce1bb0e83 (ts) convert a lot to TypeScript
Co-authored-by: Sky <msurvival65@gmail.com>
Co-authored-by: tecc <tecc@tecc.me>
2024-02-23 17:48:16 +01:00
PronounsPage
fa14ab79d9 (lint) automatically fix lints via yarn lint --fix 2024-01-11 20:36:05 +01:00
Valentyne Stigloher
eb9ebace3a (refactor) migrate from cjs to esm so that
in the case of importing `.json` files, node does support these only via adding `with { type: 'json' }`
and then it is still experimental.
The workaround is to create a require() function which is hidden from webpack via simple-hacky string replacement.
https://nodejs.org/api/esm.html#json-modules
This means that the files are not fully compatible, as webpack supports loading of other files via `import`,
while node does only allow `.js` (experimentally `.json` and `.wasm`).
2023-12-13 23:31:45 +01:00
Valentyne Stigloher
449822e2d8 (refactor) remove unused imports 2023-12-13 23:31:00 +01:00
Andrea Vos
f48e758a1b (bug) fix cleanupAccounts – ensure that lastActive is never null, otherwise users might get a removal warning right after registering 2023-08-02 18:34:26 +02:00
Andrea Vos
9af4a6dfb6 [mailer] include username in ban and inactivityWarning 2022-02-27 09:10:13 +01:00
Andrea Vos
212c35e19b fix 2022-02-26 12:49:06 +01:00
Andrea Vos
d0af1c4432 cleanupAccounts - make more resilient 2022-02-26 12:34:25 +01:00
Andrea Vos
c09b00a304 [user] remove one-time archiveBans job 2022-02-13 00:43:20 +01:00
Andrea Vos
f9e5ff769c [user] cleanup accounts 2022-02-12 18:28:56 +01:00