Просмотр исходного кода

fix exporting/importing router and mocking login-required

Yuki Takei 5 месяцев назад
Родитель
Сommit
eec2d757b0

+ 14 - 11
apps/app/src/features/audit-log-bulk-export/server/routes/apiv3/audit-log-bulk-export.integ.ts

@@ -3,9 +3,23 @@ import express, {
   type Request,
   type Response,
 } from 'express';
+import mockRequire from 'mock-require';
 import request from 'supertest';
 import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest';
 
+import type Crowi from '~/server/crowi';
+import type { ApiV3Response } from '~/server/routes/apiv3/interfaces/apiv3-response';
+
+import * as ServiceModule from '../../service/audit-log-bulk-export';
+import { auditLogBulkExportService } from '../../service/audit-log-bulk-export';
+import routerFactory from './audit-log-bulk-export';
+
+mockRequire('~/server/middlewares/login-required', () => {
+  return (_req: Request, _res: Response, next: NextFunction) => {
+    next();
+  };
+});
+
 vi.mock('~/server/middlewares/apiv3-form-validator', () => {
   const { validationResult } = require('express-validator');
   return {
@@ -35,17 +49,6 @@ vi.mock('../../service/audit-log-bulk-export', async () => {
   };
 });
 
-import type Crowi from '~/server/crowi';
-import type { ApiV3Response } from '~/server/routes/apiv3/interfaces/apiv3-response';
-import { auditLogBulkExportService } from '../../service/audit-log-bulk-export';
-
-const routerMod = (await import('./audit-log-bulk-export')) as {
-  default: (crowi: Crowi) => express.Router;
-};
-const routerFactory = routerMod.default;
-
-import * as ServiceModule from '../../service/audit-log-bulk-export';
-
 function buildCrowi(): Crowi {
   const accessTokenParser =
     () =>

+ 7 - 6
apps/app/src/features/audit-log-bulk-export/server/routes/apiv3/audit-log-bulk-export.ts

@@ -1,7 +1,7 @@
 import type { IUserHasId } from '@growi/core';
 import { SCOPE } from '@growi/core/dist/interfaces';
 import { ErrorV3 } from '@growi/core/dist/models';
-import type { NextFunction, Request, Response } from 'express';
+import type { Request } from 'express';
 import { Router } from 'express';
 import { body } from 'express-validator';
 import { AuditLogBulkExportFormat } from '~/features/audit-log-bulk-export/interfaces/audit-log-bulk-export';
@@ -36,12 +36,11 @@ interface AuthorizedRequest
   user?: IUserHasId;
 }
 
-module.exports = (crowi: Crowi): Router => {
+const routerFactory = (crowi: Crowi): Router => {
   const accessTokenParser = crowi.accessTokenParser;
-  const loginRequiredStrictly =
-    process.env.NODE_ENV === 'test'
-      ? (_req: Request, _res: Response, next: NextFunction) => next()
-      : require('~/server/middlewares/login-required')(crowi);
+  const loginRequiredStrictly = require('~/server/middlewares/login-required')(
+    crowi,
+  );
 
   const validators = {
     auditLogBulkExport: [
@@ -116,3 +115,5 @@ module.exports = (crowi: Crowi): Router => {
   );
   return router;
 };
+
+export default routerFactory;