refactor: move mailer test (#4328)

This commit is contained in:
Alex Yang
2023-09-12 22:11:19 -07:00
committed by GitHub
parent bdc2695caf
commit 74faee887e
8 changed files with 29 additions and 42 deletions

View File

@@ -74,6 +74,7 @@
"yjs": "^13.6.7"
},
"devDependencies": {
"@affine-test/kit": "workspace:*",
"@affine/storage": "workspace:*",
"@napi-rs/image": "^1.6.1",
"@nestjs/testing": "^10.2.4",

View File

@@ -2,6 +2,10 @@
// This test case is for testing the mailer service.
// Please use local SMTP server for testing.
// See: https://github.com/mailhog/MailHog
import {
getCurrentMailMessageCount,
getLatestMailMessage,
} from '@affine-test/kit/utils/cloud';
import { Test, TestingModule } from '@nestjs/testing';
import { PrismaClient } from '@prisma/client';
import test from 'ava';
@@ -13,7 +17,6 @@ import { AuthModule } from '../modules/auth';
import { AuthService } from '../modules/auth/service';
import { PrismaModule } from '../prisma';
import { RateLimiterModule } from '../throttler';
import { getCurrentMailMessageCount, getLatestMailMessage } from './utils';
let auth: AuthService;
let module: TestingModule;

View File

@@ -1,32 +1,16 @@
import { randomUUID } from 'node:crypto';
import type { INestApplication } from '@nestjs/common';
import { Test } from '@nestjs/testing';
import { hashSync } from '@node-rs/argon2';
import { PrismaClient, User } from '@prisma/client';
// @ts-expect-error graphql-upload is not typed
import graphqlUploadExpress from 'graphql-upload/graphqlUploadExpress.mjs';
import request from 'supertest';
import { AppModule } from '../app';
import type { TokenType } from '../modules/auth';
import type { UserType } from '../modules/users';
import type { InvitationType, WorkspaceType } from '../modules/workspaces';
const gql = '/graphql';
export async function getCurrentMailMessageCount() {
const response = await fetch('http://localhost:8025/api/v2/messages');
const data = await response.json();
return data.total;
}
export async function getLatestMailMessage() {
const response = await fetch('http://localhost:8025/api/v2/messages');
const data = await response.json();
return data.items[0];
}
async function signUp(
app: INestApplication,
name: string,
@@ -444,7 +428,8 @@ async function flushDB() {
const result: { tablename: string }[] =
await client.$queryRaw`SELECT tablename
FROM pg_catalog.pg_tables
WHERE schemaname != 'pg_catalog' AND schemaname != 'information_schema'`;
WHERE schemaname != 'pg_catalog'
AND schemaname != 'information_schema'`;
// remove all table data
await client.$executeRawUnsafe(
@@ -457,21 +442,6 @@ async function flushDB() {
await client.$disconnect();
}
async function createTestApp() {
const module = await Test.createTestingModule({
imports: [AppModule],
}).compile();
const app = module.createNestApplication();
app.use(
graphqlUploadExpress({
maxFileSize: 10 * 1024 * 1024,
maxFiles: 5,
})
);
await app.init();
return app;
}
async function getInviteInfo(
app: INestApplication,
token: string,
@@ -513,6 +483,7 @@ export class FakePrisma {
emailVerified: new Date(),
createdAt: new Date(),
};
get user() {
// eslint-disable-next-line @typescript-eslint/no-this-alias
const prisma = this;
@@ -536,7 +507,6 @@ export {
checkBlobSize,
collectAllBlobSizes,
collectBlobSizes,
createTestApp,
createWorkspace,
currentUser,
flushDB,

View File

@@ -1,3 +1,7 @@
import {
getCurrentMailMessageCount,
getLatestMailMessage,
} from '@affine-test/kit/utils/cloud';
import type { INestApplication } from '@nestjs/common';
import { Test } from '@nestjs/testing';
import { PrismaClient } from '@prisma/client';
@@ -12,8 +16,6 @@ import {
acceptInvite,
acceptInviteById,
createWorkspace,
getCurrentMailMessageCount,
getLatestMailMessage,
getWorkspace,
inviteUser,
leaveWorkspace,

View File

@@ -13,6 +13,9 @@
"references": [
{
"path": "../../tests/fixtures"
},
{
"path": "../../tests/kit"
}
],
"include": ["scripts", "package.json"]