mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-07-01 17:50:50 +08:00
fix: test & lint
This commit is contained in:
@@ -7,8 +7,13 @@ import {
|
|||||||
import { PrismaClient } from '@prisma/client';
|
import { PrismaClient } from '@prisma/client';
|
||||||
|
|
||||||
import { FunctionalityModules } from '../app.module';
|
import { FunctionalityModules } from '../app.module';
|
||||||
import { AFFiNELogger, EventBus, JobQueue } from '../base';
|
import { AFFiNELogger, EventBus, JobModule, JobQueue } from '../base';
|
||||||
import { createFactory, MockEventBus, MockJobQueue } from './mocks';
|
import {
|
||||||
|
createFactory,
|
||||||
|
MockEventBus,
|
||||||
|
MockJobModule,
|
||||||
|
MockJobQueue,
|
||||||
|
} from './mocks';
|
||||||
import { TEST_LOG_LEVEL } from './utils';
|
import { TEST_LOG_LEVEL } from './utils';
|
||||||
|
|
||||||
interface TestingModuleMetadata extends ModuleMetadata {
|
interface TestingModuleMetadata extends ModuleMetadata {
|
||||||
@@ -26,10 +31,17 @@ export async function createModule(
|
|||||||
metadata: TestingModuleMetadata = {}
|
metadata: TestingModuleMetadata = {}
|
||||||
): Promise<TestingModule> {
|
): Promise<TestingModule> {
|
||||||
const { tapModule, ...meta } = metadata;
|
const { tapModule, ...meta } = metadata;
|
||||||
|
const functionalityModules = [
|
||||||
|
...FunctionalityModules.filter(module => {
|
||||||
|
const moduleType = 'module' in module ? module.module : module;
|
||||||
|
return moduleType !== JobModule;
|
||||||
|
}),
|
||||||
|
MockJobModule,
|
||||||
|
];
|
||||||
|
|
||||||
const builder = Test.createTestingModule({
|
const builder = Test.createTestingModule({
|
||||||
...meta,
|
...meta,
|
||||||
imports: [...FunctionalityModules, ...(meta.imports ?? [])],
|
imports: [...functionalityModules, ...(meta.imports ?? [])],
|
||||||
});
|
});
|
||||||
|
|
||||||
builder
|
builder
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ import { MockDocSnapshot } from './doc-snapshot.mock';
|
|||||||
import { MockDocUser } from './doc-user.mock';
|
import { MockDocUser } from './doc-user.mock';
|
||||||
import { MockEventBus } from './eventbus.mock';
|
import { MockEventBus } from './eventbus.mock';
|
||||||
import { MockMailer } from './mailer.mock';
|
import { MockMailer } from './mailer.mock';
|
||||||
import { MockJobQueue } from './queue.mock';
|
import { MockJobModule, MockJobQueue } from './queue.mock';
|
||||||
import { MockTeamWorkspace } from './team-workspace.mock';
|
import { MockTeamWorkspace } from './team-workspace.mock';
|
||||||
import { MockUser } from './user.mock';
|
import { MockUser } from './user.mock';
|
||||||
import { MockUserSettings } from './user-settings.mock';
|
import { MockUserSettings } from './user-settings.mock';
|
||||||
@@ -35,6 +35,7 @@ export {
|
|||||||
installMockCopilotRuntime,
|
installMockCopilotRuntime,
|
||||||
MockCopilotProvider,
|
MockCopilotProvider,
|
||||||
MockEventBus,
|
MockEventBus,
|
||||||
|
MockJobModule,
|
||||||
MockJobQueue,
|
MockJobQueue,
|
||||||
MockMailer,
|
MockMailer,
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
import { Global, Module } from '@nestjs/common';
|
||||||
import { interval, map, take, takeUntil } from 'rxjs';
|
import { interval, map, take, takeUntil } from 'rxjs';
|
||||||
import Sinon from 'sinon';
|
import Sinon from 'sinon';
|
||||||
|
|
||||||
@@ -57,3 +58,10 @@ export class MockJobQueue {
|
|||||||
return this.add.getCalls().filter(call => call.args[0] === name).length;
|
return this.add.getCalls().filter(call => call.args[0] === name).length;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Global()
|
||||||
|
@Module({
|
||||||
|
providers: [{ provide: JobQueue, useClass: MockJobQueue }],
|
||||||
|
exports: [JobQueue],
|
||||||
|
})
|
||||||
|
export class MockJobModule {}
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ import {
|
|||||||
import { PrismaClient } from '@prisma/client';
|
import { PrismaClient } from '@prisma/client';
|
||||||
|
|
||||||
import { buildAppModule, FunctionalityModules } from '../../app.module';
|
import { buildAppModule, FunctionalityModules } from '../../app.module';
|
||||||
import { AFFiNELogger, ConfigFactory, JobQueue } from '../../base';
|
import { AFFiNELogger, ConfigFactory, JobModule, JobQueue } from '../../base';
|
||||||
import { GqlModule } from '../../base/graphql';
|
import { GqlModule } from '../../base/graphql';
|
||||||
import { ServerConfigModule } from '../../core';
|
import { ServerConfigModule } from '../../core';
|
||||||
import { AuthGuard, AuthModule } from '../../core/auth';
|
import { AuthGuard, AuthModule } from '../../core/auth';
|
||||||
@@ -18,7 +18,7 @@ import { ModelsModule } from '../../models';
|
|||||||
// for jsdoc inference
|
// for jsdoc inference
|
||||||
// oxlint-disable-next-line no-unused-vars
|
// oxlint-disable-next-line no-unused-vars
|
||||||
import type { createModule } from '../create-module';
|
import type { createModule } from '../create-module';
|
||||||
import { createFactory, MockJobQueue } from '../mocks';
|
import { createFactory, MockJobModule, MockJobQueue } from '../mocks';
|
||||||
import { MockMailer } from '../mocks/mailer.mock';
|
import { MockMailer } from '../mocks/mailer.mock';
|
||||||
import { initTestingDB, TEST_LOG_LEVEL } from './utils';
|
import { initTestingDB, TEST_LOG_LEVEL } from './utils';
|
||||||
|
|
||||||
@@ -48,6 +48,16 @@ function dedupeModules(modules: NonNullable<ModuleMetadata['imports']>) {
|
|||||||
return Array.from(map.values());
|
return Array.from(map.values());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function testingFunctionalityModules() {
|
||||||
|
return [
|
||||||
|
...FunctionalityModules.filter(module => {
|
||||||
|
const moduleType = 'module' in module ? module.module : module;
|
||||||
|
return moduleType !== JobModule;
|
||||||
|
}),
|
||||||
|
MockJobModule,
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
@Resolver(() => String)
|
@Resolver(() => String)
|
||||||
class MockResolver {
|
class MockResolver {
|
||||||
@Query(() => String)
|
@Query(() => String)
|
||||||
@@ -70,7 +80,7 @@ export async function createTestingModule(
|
|||||||
imports[0].module?.name === 'AppModule'
|
imports[0].module?.name === 'AppModule'
|
||||||
? imports
|
? imports
|
||||||
: dedupeModules([
|
: dedupeModules([
|
||||||
...FunctionalityModules,
|
...testingFunctionalityModules(),
|
||||||
ModelsModule,
|
ModelsModule,
|
||||||
AuthModule,
|
AuthModule,
|
||||||
GqlModule,
|
GqlModule,
|
||||||
|
|||||||
Reference in New Issue
Block a user