From 261a5afbddf41450939ff7ac992d643f95b4be52 Mon Sep 17 00:00:00 2001 From: "makabe.t" Date: Tue, 28 May 2024 05:38:33 +0000 Subject: [PATCH] Merged PR 903: POST /notification/register MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## 概要 [Task3983: POST /notification/register](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3983) - `POST /notification/register`APIのバリデータに対するテストを追加しました。 ## レビューポイント - テストケースに不足はないか。 ## UIの変更 - なし ## クエリの変更 - なし ## 動作確認状況 - ローカルで確認 - 行った修正がデグレを発生させていないことを確認できるか - 具体的にどのような確認をしたか - テストの追加のみなのでほかに影響なし。 --- .../notification.controller.spec.ts | 57 +++++++++++++++++++ 1 file changed, 57 insertions(+) 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); + }); +});