Repository navigation
Expand file tree
/
Copy pathvitest.remote-patterns.config.ts
More file actions
51 lines (49 loc) · 2.08 KB
/
Copy pathvitest.remote-patterns.config.ts
File metadata and controls
51 lines (49 loc) · 2.08 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
import { defineConfig } from 'vitest/config';
import {
REMOTE_PATTERNS_URL,
REMOTE_PATTERNS_STAGING_URL,
} from './extension/common/constants';
import { viteResolveAliases } from './vite.aliases';
/**
* Isolated Vitest config for the remote patterns.json smoke test.
* Deliberately separate from the main vite.config.ts so `npm test` stays
* offline; this suite hits the network.
*
* **URLs** — Single source of truth: `extension/common/constants.ts`
* (`REMOTE_PATTERNS_URL`, `REMOTE_PATTERNS_STAGING_URL`). This config picks
* one via `--mode` (see npm scripts). If `process.env.REMOTE_PATTERNS_URL` is
* already set (e.g. fork / custom raw file), that wins and mode is ignored.
*
* - `npm run test:remote-patterns` — production (`main`) patterns.json (default Vitest mode)
* - `npm run test:remote-patterns:production` — same URL, explicit `--mode production` (alias for clarity)
* - `npm run test:remote-patterns:staging` — `staging` branch patterns.json, `--mode staging`
* - `npm run test:remote-patterns:production:parity` — production URL + Act 4 (bundled `DEFAULT_PATTERNS` parity)
*
* Act 4: **on** for staging by default; **off** for production unless `production:parity` or
* `REMOTE_PATTERNS_COMPARE_DEFAULTS=true`. See `utils/remote-patterns-smoke-utils.ts`.
*/
function resolveRemotePatternsUrlForSmoke(mode: string): string {
const fromEnv = process.env.REMOTE_PATTERNS_URL?.trim();
if (fromEnv) return fromEnv;
if (mode === 'staging') return REMOTE_PATTERNS_STAGING_URL;
// production / main — default Vitest mode, `--mode production`, `--mode production-parity`, etc.
return REMOTE_PATTERNS_URL;
}
export default defineConfig(({ mode }) => ({
resolve: {
alias: viteResolveAliases,
},
test: {
globals: true,
include: ['extension/common/__tests__/remote-patterns-smoke.test.ts'],
testTimeout: 30_000,
reporters: ['verbose'],
retry: 0,
env: {
REMOTE_PATTERNS_URL: resolveRemotePatternsUrlForSmoke(mode),
...(mode === 'production-parity'
? { REMOTE_PATTERNS_COMPARE_DEFAULTS: 'true' }
: {}),
},
},
}));