mirror of
https://gitlab.com/PronounsPage/PronounsPage.git
synced 2025-09-27 06:52:35 -04:00

- 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.
41 lines
1.3 KiB
TypeScript
41 lines
1.3 KiB
TypeScript
import dotenv from 'dotenv';
|
|
|
|
import type { Config } from '../locale/config.ts';
|
|
import buildLocaleList from '../src/buildLocaleList.ts';
|
|
import { buildList } from '../src/helpers.ts';
|
|
|
|
import { env } from './env.ts';
|
|
import { loadSuml } from './loader.ts';
|
|
import { rootDir } from './paths.ts';
|
|
|
|
export default () => {
|
|
dotenv.config({ path: `${rootDir}/.env` });
|
|
if (process.env.__INCLUDE) {
|
|
dotenv.config({ path: `${rootDir}/${process.env.__INCLUDE}` });
|
|
}
|
|
process.env.CLOUDFRONT = `https://${process.env.AWS_CLOUDFRONT_ID}.cloudfront.net`;
|
|
|
|
const config = loadSuml('config') as Config;
|
|
const locales = buildLocaleList(config.locale);
|
|
|
|
const allLocalesUrls = buildList(function*() {
|
|
if (env === 'development') {
|
|
if (process.env.BASE_URL) {
|
|
yield process.env.BASE_URL;
|
|
}
|
|
yield 'http://pronouns.test:3000';
|
|
yield 'http://localhost:3000';
|
|
} else if (process.env.ENV === 'test') {
|
|
if (process.env.BASE_URL) {
|
|
yield process.env.BASE_URL;
|
|
}
|
|
} else {
|
|
yield 'https://pronouns.page';
|
|
for (const localeDescription of Object.values(locales)) {
|
|
yield localeDescription.url;
|
|
}
|
|
}
|
|
});
|
|
process.env.ALL_LOCALES_URLS = allLocalesUrls.join(',');
|
|
};
|