diff --git a/dictation_server/src/features/notification/notification.controller.spec.ts b/dictation_server/src/features/notification/notification.controller.spec.ts index bbf71a7..7f95d10 100644 --- a/dictation_server/src/features/notification/notification.controller.spec.ts +++ b/dictation_server/src/features/notification/notification.controller.spec.ts @@ -2,6 +2,9 @@ import { Test, TestingModule } from '@nestjs/testing'; import { NotificationController } from './notification.controller'; import { NotificationService } from './notification.service'; import { ConfigModule } from '@nestjs/config'; +import { RegisterRequest } from './types/types'; +import { plainToClass } from 'class-transformer'; +import { validate } from 'class-validator'; describe('NotificationController', () => { let controller: NotificationController; @@ -28,3 +31,57 @@ describe('NotificationController', () => { expect(controller).toBeDefined(); }); }); + +describe('valdation register', () => { + it('有効なリクエストが成功する(wns)', async () => { + const request = new RegisterRequest(); + request.pns = 'wns'; + request.handler = 'test'; + + const valdationObject = plainToClass(RegisterRequest, request); + + const errors = await validate(valdationObject); + expect(errors.length).toBe(0); + }); + it('有効なリクエストが成功する(apn)', async () => { + const request = new RegisterRequest(); + request.pns = 'apns'; + request.handler = 'test'; + + const valdationObject = plainToClass(RegisterRequest, request); + + const errors = await validate(valdationObject); + expect(errors.length).toBe(0); + }); + it('pnsが不正(wns or apns以外)な場合、リクエストが失敗する', async () => { + const request = new RegisterRequest(); + request.pns = 'invalid'; + request.handler = 'test'; + + const valdationObject = plainToClass(RegisterRequest, request); + + const errors = await validate(valdationObject); + expect(errors.length).toBe(1); + }); + it('handlerが空文字の場合、リクエストが失敗する', async () => { + const request = new RegisterRequest(); + request.pns = 'apns'; + request.handler = ''; + + const valdationObject = plainToClass(RegisterRequest, request); + + const errors = await validate(valdationObject); + expect(errors.length).toBe(1); + }); + it('handlerが文字列でない場合、リクエストが失敗する', async () => { + const request = { + pns: 'apns', + handler: 123, + }; + + const valdationObject = plainToClass(RegisterRequest, request); + + const errors = await validate(valdationObject); + expect(errors.length).toBe(1); + }); +});