fix(tests): use dynamic imports in portal.test.ts to avoid env validation
This commit is contained in:
@@ -1,24 +1,41 @@
|
||||
import { describe, it, expect } from 'vitest';
|
||||
|
||||
import {
|
||||
getPortalUserYachts,
|
||||
getPortalUserMemberships,
|
||||
getPortalUserReservations,
|
||||
} from '@/lib/services/portal.service';
|
||||
import {
|
||||
makeClient,
|
||||
makeCompany,
|
||||
makeMembership,
|
||||
makePort,
|
||||
makeYacht,
|
||||
makeBerth,
|
||||
makeReservation,
|
||||
} from '../../helpers/factories';
|
||||
import { db } from '@/lib/db';
|
||||
import { yachts } from '@/lib/db/schema';
|
||||
import { eq } from 'drizzle-orm';
|
||||
import { describe, it, expect, beforeAll } from 'vitest';
|
||||
|
||||
describe('portal.service — getPortalUserYachts', () => {
|
||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
||||
let getPortalUserYachts: (clientId: string, portId: string) => Promise<Array<any>>;
|
||||
|
||||
let makeClient: typeof import('../../helpers/factories').makeClient;
|
||||
|
||||
let makePort: typeof import('../../helpers/factories').makePort;
|
||||
|
||||
let makeYacht: typeof import('../../helpers/factories').makeYacht;
|
||||
|
||||
let makeCompany: typeof import('../../helpers/factories').makeCompany;
|
||||
|
||||
let makeMembership: typeof import('../../helpers/factories').makeMembership;
|
||||
|
||||
let db: typeof import('@/lib/db').db;
|
||||
|
||||
let yachts: typeof import('@/lib/db/schema').yachts;
|
||||
|
||||
let eq: typeof import('drizzle-orm').eq;
|
||||
|
||||
beforeAll(async () => {
|
||||
const portalMod = await import('@/lib/services/portal.service');
|
||||
getPortalUserYachts = portalMod.getPortalUserYachts;
|
||||
const factoriesMod = await import('../../helpers/factories');
|
||||
makeClient = factoriesMod.makeClient;
|
||||
makePort = factoriesMod.makePort;
|
||||
makeYacht = factoriesMod.makeYacht;
|
||||
makeCompany = factoriesMod.makeCompany;
|
||||
makeMembership = factoriesMod.makeMembership;
|
||||
const dbMod = await import('@/lib/db');
|
||||
db = dbMod.db;
|
||||
const schemaMod = await import('@/lib/db/schema');
|
||||
yachts = schemaMod.yachts;
|
||||
const ormMod = await import('drizzle-orm');
|
||||
eq = ormMod.eq;
|
||||
});
|
||||
it('returns client-owned yachts only when client has no memberships', async () => {
|
||||
const port = await makePort();
|
||||
const client = await makeClient({ portId: port.id });
|
||||
@@ -156,6 +173,27 @@ describe('portal.service — getPortalUserYachts', () => {
|
||||
});
|
||||
|
||||
describe('portal.service — getPortalUserMemberships', () => {
|
||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
||||
let getPortalUserMemberships: (clientId: string, portId: string) => Promise<Array<any>>;
|
||||
|
||||
let makeClient: typeof import('../../helpers/factories').makeClient;
|
||||
|
||||
let makePort: typeof import('../../helpers/factories').makePort;
|
||||
|
||||
let makeCompany: typeof import('../../helpers/factories').makeCompany;
|
||||
|
||||
let makeMembership: typeof import('../../helpers/factories').makeMembership;
|
||||
|
||||
beforeAll(async () => {
|
||||
const portalMod = await import('@/lib/services/portal.service');
|
||||
getPortalUserMemberships = portalMod.getPortalUserMemberships;
|
||||
const factoriesMod = await import('../../helpers/factories');
|
||||
makeClient = factoriesMod.makeClient;
|
||||
makePort = factoriesMod.makePort;
|
||||
makeCompany = factoriesMod.makeCompany;
|
||||
makeMembership = factoriesMod.makeMembership;
|
||||
});
|
||||
|
||||
it('returns only active memberships', async () => {
|
||||
const port = await makePort();
|
||||
const client = await makeClient({ portId: port.id });
|
||||
@@ -203,6 +241,30 @@ describe('portal.service — getPortalUserMemberships', () => {
|
||||
});
|
||||
|
||||
describe('portal.service — getPortalUserReservations', () => {
|
||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
||||
let getPortalUserReservations: (clientId: string, portId: string) => Promise<Array<any>>;
|
||||
|
||||
let makeClient: typeof import('../../helpers/factories').makeClient;
|
||||
|
||||
let makePort: typeof import('../../helpers/factories').makePort;
|
||||
|
||||
let makeYacht: typeof import('../../helpers/factories').makeYacht;
|
||||
|
||||
let makeBerth: typeof import('../../helpers/factories').makeBerth;
|
||||
|
||||
let makeReservation: typeof import('../../helpers/factories').makeReservation;
|
||||
|
||||
beforeAll(async () => {
|
||||
const portalMod = await import('@/lib/services/portal.service');
|
||||
getPortalUserReservations = portalMod.getPortalUserReservations;
|
||||
const factoriesMod = await import('../../helpers/factories');
|
||||
makeClient = factoriesMod.makeClient;
|
||||
makePort = factoriesMod.makePort;
|
||||
makeYacht = factoriesMod.makeYacht;
|
||||
makeBerth = factoriesMod.makeBerth;
|
||||
makeReservation = factoriesMod.makeReservation;
|
||||
});
|
||||
|
||||
it('returns active + pending reservations', async () => {
|
||||
const port = await makePort();
|
||||
const client = await makeClient({ portId: port.id });
|
||||
|
||||
Reference in New Issue
Block a user