Skip to content
File

Blob: vitest.config.ts

typescript63 lines
1import { fileURLToPath, URL } from "node:url";
2import { defineConfig, defineProject } from "vitest/config";
3import { OIDCMockProvider } from "@mongodb-js/oidc-mock-provider";
4 
5import { cloudflareWorkerPlugin } from "./tests/vitest/cloudflare";
6 
7const srcDirectory = fileURLToPath(new URL("./src", import.meta.url));
8const testsDirectory = fileURLToPath(new URL("./tests", import.meta.url));
9 
10const aliases = {
11 "@": srcDirectory,
12 "@tests": testsDirectory,
13};
14 
15const oidcProvider = await OIDCMockProvider.create({
16 port: 0,
17 hostname: "localhost",
18 getTokenPayload(metadata) {
19 return {
20 expires_in: 3600,
21 payload: {
22 sub: "tessera-sub-phase1",
23 email: "phase1@example.test",
24 name: "Phase One Tester",
25 },
26 customIdTokenPayload: {
27 nonce: metadata.nonce,
28 },
29 skipRefreshToken: true,
30 };
31 },
32});
33oidcProvider.httpServer.unref();
34process.env.DAB_TEST_OIDC_ISSUER = oidcProvider.issuer;
35 
36export default defineConfig({
37 test: {
38 projects: [
39 defineProject({
40 resolve: { alias: aliases },
41 test: {
42 name: "worker-unit",
43 include: ["tests/worker/**/*.test.ts"],
44 exclude: ["tests/worker/**/*.workers.test.ts"],
45 },
46 }),
47 defineProject({
48 plugins: [cloudflareWorkerPlugin()],
49 resolve: { alias: aliases },
50 test: {
51 name: "worker-runtime",
52 isolate: false,
53 fileParallelism: false,
54 sequence: { groupOrder: 1 },
55 include: ["tests/worker/**/*.workers.test.ts"],
56 setupFiles: ["./tests/setup/worker.ts"],
57 testTimeout: 30_000,
58 },
59 }),
60 ],
61 },
62});