Skip to content

Commit e2a1f2e

Browse files
committed
Use close codes everywhere
1 parent 568a3b5 commit e2a1f2e

File tree

3 files changed

+14
-11
lines changed

3 files changed

+14
-11
lines changed

src/infra/authorization/authorization.service.spec.ts

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import { createMock, DeepMocked } from '@golevelup/ts-jest';
22
import { Test, TestingModule } from '@nestjs/testing';
33
import { HttpRequest } from 'uWebSockets.js';
4+
import { WebSocketCloseCode } from '../../shared/type/websocket-close-code.js';
45
import { Logger } from '../logger/index.js';
56
import { AuthorizationApi, AuthorizedReponse } from './authorization-api-client/index.js';
67
import { AuthorizationService } from './authorization.service.js';
@@ -82,7 +83,7 @@ describe(AuthorizationService.name, () => {
8283

8384
const expectedResult = {
8485
error: {
85-
code: 4401,
86+
code: WebSocketCloseCode.Unauthorized,
8687
reason: 'Unauthorized',
8788
},
8889
hasWriteAccess: false,
@@ -108,7 +109,7 @@ describe(AuthorizationService.name, () => {
108109

109110
const expectedResult = {
110111
error: {
111-
code: 4500,
112+
code: WebSocketCloseCode.InternalError,
112113
reason: 'RoomId not found',
113114
},
114115
hasWriteAccess: false,
@@ -133,7 +134,7 @@ describe(AuthorizationService.name, () => {
133134
const { req } = setupRequest('roomId', 'other=ABC');
134135
const expectedResult = {
135136
error: {
136-
code: 4401,
137+
code: WebSocketCloseCode.Unauthorized,
137138
reason: 'JWT not found',
138139
},
139140
hasWriteAccess: false,
@@ -162,7 +163,7 @@ describe(AuthorizationService.name, () => {
162163

163164
const expectedResult = {
164165
error: {
165-
code: 4500,
166+
code: WebSocketCloseCode.InternalError,
166167
reason: 'testError',
167168
},
168169
hasWriteAccess: false,

src/infra/authorization/authorization.service.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import { Injectable } from '@nestjs/common';
22
import { HttpRequest } from 'uWebSockets.js';
3+
import { WebSocketCloseCode } from '../../shared/type/websocket-close-code.js';
34
import { Logger } from '../logger/index.js';
45
import {
56
AuthorizationApi,
@@ -29,9 +30,9 @@ export class AuthorizationService {
2930
response = await this.fetchAuthorization(room, token);
3031
} catch (error) {
3132
if (error.message === 'JWT not found') {
32-
response = this.createErrorResponsePayload(4401, 'JWT not found');
33+
response = this.createErrorResponsePayload(WebSocketCloseCode.Unauthorized, 'JWT not found');
3334
} else {
34-
response = this.createErrorResponsePayload(4500, error.message);
35+
response = this.createErrorResponsePayload(WebSocketCloseCode.InternalError, error.message);
3536
}
3637
}
3738

@@ -84,7 +85,7 @@ export class AuthorizationService {
8485

8586
const { isAuthorized, userId } = response;
8687
if (!isAuthorized) {
87-
return this.createErrorResponsePayload(4401, 'Unauthorized');
88+
return this.createErrorResponsePayload(WebSocketCloseCode.Unauthorized, 'Unauthorized');
8889
}
8990

9091
return this.createResponsePayload(room, userId);

src/modules/server/api/test/websocket.api.spec.ts

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import { WebsocketProvider } from 'y-websocket';
88
import { Doc, encodeStateAsUpdateV2 } from 'yjs';
99
import { ResponsePayloadBuilder } from '../../../../infra//authorization/response.builder.js';
1010
import { AuthorizationService } from '../../../../infra/authorization/index.js';
11+
import { WebSocketCloseCode } from '../../../../shared/type/websocket-close-code.js';
1112
import { ServerModule } from '../../server.module.js';
1213
import { TldrawServerConfig } from '../../tldraw-server.config.js';
1314

@@ -184,7 +185,7 @@ describe('Websocket Api Test', () => {
184185
const randomString = Math.random().toString(36).substring(7);
185186
const room = randomString;
186187

187-
const errorResponse = ResponsePayloadBuilder.buildWithError(4401, 'Unauthorized');
188+
const errorResponse = ResponsePayloadBuilder.buildWithError(WebSocketCloseCode.Unauthorized, 'Unauthorized');
188189
authorizationService.hasPermission.mockResolvedValueOnce(errorResponse);
189190

190191
const { ydoc: client1Doc, provider } = createWsClient(room);
@@ -209,7 +210,7 @@ describe('Websocket Api Test', () => {
209210
// @ts-ignore
210211
expect(error.reason).toBe('Unauthorized');
211212
// @ts-ignore
212-
expect(error.code).toBe(4401);
213+
expect(error.code).toBe(WebSocketCloseCode.Unauthorized);
213214

214215
provider.awareness.destroy();
215216
provider.destroy();
@@ -246,7 +247,7 @@ describe('Websocket Api Test', () => {
246247
// @ts-ignore
247248
expect(error.reason).toBe('Missing room or userid');
248249
// @ts-ignore
249-
expect(error.code).toBe(1008);
250+
expect(error.code).toBe(WebSocketCloseCode.InternalError);
250251

251252
provider.awareness.destroy();
252253
provider.destroy();
@@ -281,7 +282,7 @@ describe('Websocket Api Test', () => {
281282
// @ts-ignore
282283
expect(error.reason).toBe('Internal Server Error');
283284
// @ts-ignore
284-
expect(error.code).toBe(1011);
285+
expect(error.code).toBe(WebSocketCloseCode.InternalError);
285286
});
286287
});
287288
});

0 commit comments

Comments
 (0)