Initial commit
CI / check (push) Successful in 56s

This commit is contained in:
rudder
2026-08-12 14:02:25 +03:00
commit 3ab2d4a6cf
85 changed files with 10257 additions and 0 deletions
+48
View File
@@ -0,0 +1,48 @@
// Vitest globalSetup for the production e2e suite.
//
// Setup: seeds a fresh project on prod (unless RUDDER_E2E_PROJECT_KEY is provided) and
// writes .e2e-prod.local.json for the tests to read.
// Teardown: deletes the seeded project (default). Set RUDDER_E2E_KEEP=1 to keep it.
import { runSeed, deleteProject } from './seed.js';
import { readArtifact, writeArtifact, removeArtifact } from './artifact.js';
import type { SeedArtifact } from './types.js';
export default async function setup(): Promise<() => Promise<void>> {
const baseUrl = process.env.RUDDER_E2E_BASE_URL ?? 'https://api.rudder.build';
// Externally-provided project: skip seeding, just verify an artifact/env exists.
if (process.env.RUDDER_E2E_PROJECT_KEY) {
const existing = readArtifact();
if (!existing) {
writeArtifact({
baseUrl,
projectKey: process.env.RUDDER_E2E_PROJECT_KEY,
// Remaining fields are unknown for an external project; tests relying on the
// seeded dataset/admin token will require a real seed run.
} as unknown as SeedArtifact);
}
return async () => {};
}
const log = (m: string) => console.log(`[seed] ${m}`);
log(`seeding ${baseUrl} ...`);
const artifact = await runSeed(baseUrl, log);
writeArtifact(artifact);
log(`seed complete: project=${artifact.projectId}`);
return async () => {
if (process.env.RUDDER_E2E_KEEP === '1') {
console.log('[seed] RUDDER_E2E_KEEP=1 — leaving project in place');
return;
}
try {
await deleteProject(artifact);
console.log(`[seed] deleted project ${artifact.projectId}`);
} catch (err) {
console.warn(`[seed] failed to delete project ${artifact.projectId}: ${String(err)}`);
} finally {
removeArtifact();
}
};
}