three60/cypress.config.ts
2025-04-27 19:35:24 +02:00

47 lines
1.5 KiB
TypeScript

import { defineConfig } from "cypress";
import { drizzle } from "drizzle-orm/mysql2";
import * as schema from './src/db/schema';
import dotenv from 'dotenv';
import { sql } from "drizzle-orm";
import { migrate } from "drizzle-orm/mysql2/migrator";
export default defineConfig({
e2e: {
setupNodeEvents(on, config) {
// implement node event listeners here
on('task', {
clearDatabase: async () => {
dotenv.config({
path: '.env.e2e-test'
});
console.log(process.env.DATABASE_URL);
const db = drizzle(process.env.DATABASE_URL ?? '', {
schema,
mode: 'default',
});
await db.execute(sql`DROP TABLE IF EXISTS ${schema.sessions}`);
await db.execute(sql`DROP TABLE IF EXISTS ${schema.surveyAnswersTable}`);
await db.execute(sql`DROP TABLE IF EXISTS ${schema.surveySkillsTable}`);
await db.execute(sql`DROP TABLE IF EXISTS ${schema.surveyCommentsTable}`);
await db.execute(sql`DROP TABLE IF EXISTS ${schema.surveyPermissionsTable}`);
await db.execute(sql`DROP TABLE IF EXISTS ${schema.surveyAccessTable}`);
await db.execute(sql`DROP TABLE IF EXISTS ${schema.surveysTable}`);
await db.execute(sql`DROP TABLE IF EXISTS ${schema.usersTable}`);
await db.execute(sql`DROP TABLE IF EXISTS __drizzle_migrations`);
await migrate(db, {
migrationsFolder: './drizzle',
});
return null;
}
});
},
},
});