Yuki Takei 1 год назад
Родитель
Сommit
3b304bde58
1 измененных файлов с 26 добавлено и 10 удалено
  1. 26 10
      apps/app/src/server/service/passport.spec.ts

+ 26 - 10
apps/app/test/integration/service/passport.test.js → apps/app/src/server/service/passport.spec.ts

@@ -1,23 +1,39 @@
-const { getInstance } = require('../setup-crowi');
+import { mock } from 'vitest-mock-extended';
+
+import type Crowi from '~/server/crowi';
+import type UserEvent from '~/server/events/user';
+
+import { configManager } from './config-manager';
+import PassportService from './passport';
 
 describe('PassportService test', () => {
-  let crowi;
 
-  beforeEach(async() => {
-    crowi = await getInstance();
-  });
+  let crowiMock;
 
+  beforeAll(async() => {
+    crowiMock = mock<Crowi>({
+      event: vi.fn().mockImplementation((eventName) => {
+        if (eventName === 'user') {
+          return mock<UserEvent>({
+            on: vi.fn(),
+          });
+        }
+      }),
+    });
+  });
 
   describe('verifySAMLResponseByABLCRule()', () => {
 
+    const passportService = new PassportService(crowiMock);
+
     let getConfigSpy;
     let extractAttributesFromSAMLResponseSpy;
 
     beforeEach(async() => {
       // prepare spy for ConfigManager.getConfig
-      getConfigSpy = jest.spyOn(crowi.configManager, 'getConfig');
+      getConfigSpy = vi.spyOn(configManager, 'getConfig');
       // prepare spy for extractAttributesFromSAMLResponse method
-      extractAttributesFromSAMLResponseSpy = jest.spyOn(crowi.passportService, 'extractAttributesFromSAMLResponse');
+      extractAttributesFromSAMLResponseSpy = vi.spyOn(passportService, 'extractAttributesFromSAMLResponse');
     });
 
     /* eslint-disable indent */
@@ -49,8 +65,8 @@ describe('PassportService test', () => {
         const responseMock = {};
 
         // setup mock implementation
-        getConfigSpy.mockImplementation((ns, key) => {
-          if (ns === 'crowi' && key === 'security:passport-saml:ABLCRule') {
+        getConfigSpy.mockImplementation((key) => {
+          if (key === 'security:passport-saml:ABLCRule') {
             return ruleStr;
           }
           throw new Error('Unexpected behavior.');
@@ -65,7 +81,7 @@ describe('PassportService test', () => {
           };
         });
 
-        const result = crowi.passportService.verifySAMLResponseByABLCRule(responseMock);
+        const result = passportService.verifySAMLResponseByABLCRule(responseMock);
 
         expect(result).toBe(expected);
       });