test(api): setup mongo schema before running tests (#51686)
Co-authored-by: Muhammed Mustafa <MuhammedElruby@gmail.com>pull/51772/head^2
parent
25ff25e74f
commit
5c8b94f236
|
@ -64,7 +64,8 @@ export function setupServer(): void {
|
|||
await fastify.ready();
|
||||
|
||||
global.fastifyTestInstance = fastify;
|
||||
});
|
||||
// allow a little time to setup the db
|
||||
}, 10000);
|
||||
|
||||
afterAll(async () => {
|
||||
// Due to a prisma bug, this is not enough, we need to --force-exit jest:
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
import { execSync } from 'node:child_process';
|
||||
import fp from 'fastify-plugin';
|
||||
import { FastifyPluginAsync } from 'fastify';
|
||||
import { PrismaClient } from '@prisma/client';
|
||||
|
@ -18,6 +19,19 @@ const isTest = (workerId: string | undefined): workerId is string =>
|
|||
!!workerId && FREECODECAMP_NODE_ENV === 'development';
|
||||
|
||||
const prismaPlugin: FastifyPluginAsync = fp(async (server, _options) => {
|
||||
if (isTest(process.env.JEST_WORKER_ID)) {
|
||||
// push the schema to the test db to setup indexes, unique constraints, etc
|
||||
execSync('pnpm prisma db push', {
|
||||
env: {
|
||||
...process.env,
|
||||
MONGOHQ_URL: createTestConnectionURL(
|
||||
MONGOHQ_URL,
|
||||
process.env.JEST_WORKER_ID
|
||||
)
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
const prisma = isTest(process.env.JEST_WORKER_ID)
|
||||
? new PrismaClient({
|
||||
datasources: {
|
||||
|
|
Loading…
Reference in New Issue