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

refactor: clean up access-token-parser integration tests for better readability

Shun Miyazawa 7 месяцев назад
Родитель
Сommit
3796a7694b

+ 8 - 7
apps/app/src/server/middlewares/access-token-parser/access-token.integ.ts

@@ -1,9 +1,9 @@
 import { faker } from '@faker-js/faker';
 import { faker } from '@faker-js/faker';
+import { SCOPE } from '@growi/core/dist/interfaces';
 import { serializeUserSecurely } from '@growi/core/dist/models/serializers';
 import { serializeUserSecurely } from '@growi/core/dist/models/serializers';
 import type { Response } from 'express';
 import type { Response } from 'express';
 import { mock } from 'vitest-mock-extended';
 import { mock } from 'vitest-mock-extended';
 
 
-import { SCOPE } from '@growi/core/dist/interfaces';
 import type Crowi from '~/server/crowi';
 import type Crowi from '~/server/crowi';
 import type UserEvent from '~/server/events/user';
 import type UserEvent from '~/server/events/user';
 import { AccessToken } from '~/server/models/access-token';
 import { AccessToken } from '~/server/models/access-token';
@@ -17,6 +17,7 @@ vi.mock('@growi/core/dist/models/serializers', { spy: true });
 describe('access-token-parser middleware for access token with scopes', () => {
 describe('access-token-parser middleware for access token with scopes', () => {
 
 
   let User;
   let User;
+  const dummyAccessToken = 'cb51d35793fc5fd4a0aaae354b106045d7a774620ecf8068c147d1780f3573fc';
 
 
   beforeAll(async() => {
   beforeAll(async() => {
     const crowiMock = mock<Crowi>({
     const crowiMock = mock<Crowi>({
@@ -39,7 +40,7 @@ describe('access-token-parser middleware for access token with scopes', () => {
     });
     });
     const resMock = mock<Response>();
     const resMock = mock<Response>();
 
 
-    await parserForAccessToken([])(reqMock, resMock);
+    await parserForAccessToken(dummyAccessToken, [])(reqMock, resMock);
 
 
     expect(reqMock.user).toBeUndefined();
     expect(reqMock.user).toBeUndefined();
   });
   });
@@ -69,7 +70,7 @@ describe('access-token-parser middleware for access token with scopes', () => {
 
 
     // act
     // act
     reqMock.query.access_token = token;
     reqMock.query.access_token = token;
-    await parserForAccessToken([])(reqMock, resMock);
+    await parserForAccessToken(dummyAccessToken, [])(reqMock, resMock);
 
 
     // assert
     // assert
     expect(reqMock.user).toBeUndefined();
     expect(reqMock.user).toBeUndefined();
@@ -102,7 +103,7 @@ describe('access-token-parser middleware for access token with scopes', () => {
 
 
     // act
     // act
     reqMock.query.access_token = token;
     reqMock.query.access_token = token;
-    await parserForAccessToken([SCOPE.READ.USER_SETTINGS.INFO])(reqMock, resMock);
+    await parserForAccessToken(dummyAccessToken, [SCOPE.READ.USER_SETTINGS.INFO])(reqMock, resMock);
 
 
     // assert
     // assert
     expect(reqMock.user).toBeDefined();
     expect(reqMock.user).toBeDefined();
@@ -137,7 +138,7 @@ describe('access-token-parser middleware for access token with scopes', () => {
 
 
     // act - try to access with write:user:info scope
     // act - try to access with write:user:info scope
     reqMock.query.access_token = token;
     reqMock.query.access_token = token;
-    await parserForAccessToken([SCOPE.WRITE.USER_SETTINGS.INFO])(reqMock, resMock);
+    await parserForAccessToken(dummyAccessToken, [SCOPE.WRITE.USER_SETTINGS.INFO])(reqMock, resMock);
 
 
     // // assert
     // // assert
     expect(reqMock.user).toBeUndefined();
     expect(reqMock.user).toBeUndefined();
@@ -170,7 +171,7 @@ describe('access-token-parser middleware for access token with scopes', () => {
 
 
     // act - try to access with read:user:info scope
     // act - try to access with read:user:info scope
     reqMock.query.access_token = token;
     reqMock.query.access_token = token;
-    await parserForAccessToken([SCOPE.READ.USER_SETTINGS.INFO])(reqMock, resMock);
+    await parserForAccessToken(dummyAccessToken, [SCOPE.READ.USER_SETTINGS.INFO])(reqMock, resMock);
 
 
     // assert
     // assert
     expect(reqMock.user).toBeDefined();
     expect(reqMock.user).toBeDefined();
@@ -202,7 +203,7 @@ describe('access-token-parser middleware for access token with scopes', () => {
 
 
     // act - try to access with read:user:info scope
     // act - try to access with read:user:info scope
     reqMock.query.access_token = token;
     reqMock.query.access_token = token;
-    await parserForAccessToken([SCOPE.READ.USER_SETTINGS.INFO, SCOPE.READ.USER_SETTINGS.API.ACCESS_TOKEN])(reqMock, resMock);
+    await parserForAccessToken(dummyAccessToken, [SCOPE.READ.USER_SETTINGS.INFO, SCOPE.READ.USER_SETTINGS.API.ACCESS_TOKEN])(reqMock, resMock);
 
 
     // assert
     // assert
     expect(reqMock.user).toBeDefined();
     expect(reqMock.user).toBeDefined();

+ 7 - 6
apps/app/src/server/middlewares/access-token-parser/api-token.integ.ts

@@ -17,6 +17,7 @@ vi.mock('@growi/core/dist/models/serializers', { spy: true });
 describe('access-token-parser middleware', () => {
 describe('access-token-parser middleware', () => {
 
 
   let User;
   let User;
+  const dummyAccessToken = 'd4+pf06KZPt71C9RdyekTtgaOPQNvGnYJWVWDowJvp4=';
 
 
   beforeAll(async() => {
   beforeAll(async() => {
     const crowiMock = mock<Crowi>({
     const crowiMock = mock<Crowi>({
@@ -42,7 +43,7 @@ describe('access-token-parser middleware', () => {
     expect(reqMock.user).toBeUndefined();
     expect(reqMock.user).toBeUndefined();
 
 
     // act
     // act
-    await parserForApiToken(reqMock, resMock);
+    await parserForApiToken(dummyAccessToken)(reqMock, resMock);
 
 
     // assert
     // assert
     expect(reqMock.user).toBeUndefined();
     expect(reqMock.user).toBeUndefined();
@@ -60,7 +61,7 @@ describe('access-token-parser middleware', () => {
 
 
     // act
     // act
     reqMock.query.access_token = 'invalidToken';
     reqMock.query.access_token = 'invalidToken';
-    await parserForApiToken(reqMock, resMock);
+    await parserForApiToken(dummyAccessToken)(reqMock, resMock);
 
 
     // assert
     // assert
     expect(reqMock.user).toBeUndefined();
     expect(reqMock.user).toBeUndefined();
@@ -88,7 +89,7 @@ describe('access-token-parser middleware', () => {
 
 
     // act
     // act
     reqMock.query.access_token = targetUser.apiToken;
     reqMock.query.access_token = targetUser.apiToken;
-    await parserForApiToken(reqMock, resMock);
+    await parserForApiToken(dummyAccessToken)(reqMock, resMock);
 
 
     // assert
     // assert
     expect(reqMock.user).toBeDefined();
     expect(reqMock.user).toBeDefined();
@@ -116,7 +117,7 @@ describe('access-token-parser middleware', () => {
 
 
     // act
     // act
     reqMock.body.access_token = targetUser.apiToken;
     reqMock.body.access_token = targetUser.apiToken;
-    await parserForApiToken(reqMock, resMock);
+    await parserForApiToken(dummyAccessToken)(reqMock, resMock);
 
 
     // assert
     // assert
     expect(reqMock.user).toBeDefined();
     expect(reqMock.user).toBeDefined();
@@ -147,7 +148,7 @@ describe('access-token-parser middleware', () => {
 
 
     // act
     // act
     reqMock.headers.authorization = `Bearer ${targetUser.apiToken}`;
     reqMock.headers.authorization = `Bearer ${targetUser.apiToken}`;
-    await parserForApiToken(reqMock, resMock);
+    await parserForApiToken(dummyAccessToken)(reqMock, resMock);
 
 
     // assert
     // assert
     expect(reqMock.user).toBeDefined();
     expect(reqMock.user).toBeDefined();
@@ -172,7 +173,7 @@ describe('access-token-parser middleware', () => {
 
 
     // act
     // act
     reqMock.headers.authorization = `Basic ${randomString}`; // Basic auth header with random string
     reqMock.headers.authorization = `Basic ${randomString}`; // Basic auth header with random string
-    await parserForApiToken(reqMock, resMock);
+    await parserForApiToken(dummyAccessToken)(reqMock, resMock);
 
 
     // assert
     // assert
     expect(reqMock.user).toBeUndefined();
     expect(reqMock.user).toBeUndefined();