Merged PR 886: GET /tasks
## 概要 [Task3980: GET /tasks](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3980) - `GET /tasks` のバリデータのUTを追加しました。 ## レビューポイント - テスト項目は適切でしょうか? ## UIの変更 - なし ## クエリの変更 - なし ## 動作確認状況 - ローカルで確認 - 行った修正がデグレを発生させていないことを確認できるか - 具体的にどのような確認をしたか - テストの修正のみなので影響なし
This commit is contained in:
parent
3ea84a3597
commit
ffd6eb4e68
@ -2,6 +2,9 @@ import { Test, TestingModule } from '@nestjs/testing';
|
||||
import { TasksController } from './tasks.controller';
|
||||
import { TasksService } from './tasks.service';
|
||||
import { ConfigModule } from '@nestjs/config';
|
||||
import { TasksRequest } from './types/types';
|
||||
import { validate } from 'class-validator';
|
||||
import { plainToClass } from 'class-transformer';
|
||||
|
||||
describe('TasksController', () => {
|
||||
let controller: TasksController;
|
||||
@ -27,4 +30,89 @@ describe('TasksController', () => {
|
||||
it('should be defined', () => {
|
||||
expect(controller).toBeDefined();
|
||||
});
|
||||
|
||||
describe('valdation getTasks', () => {
|
||||
it('最低限の有効なリクエストが成功する', async () => {
|
||||
const request = new TasksRequest();
|
||||
|
||||
const valdationObject = plainToClass(TasksRequest, request);
|
||||
|
||||
const errors = await validate(valdationObject);
|
||||
expect(errors.length).toBe(0);
|
||||
});
|
||||
it('設定可能な全てのパラメータが指定されている場合、リクエストが成功する', async () => {
|
||||
const request = new TasksRequest();
|
||||
request.limit = 1;
|
||||
request.offset = 1;
|
||||
request.status = 'Uploaded';
|
||||
request.direction = 'ASC';
|
||||
request.paramName = 'JOB_NUMBER';
|
||||
|
||||
const valdationObject = plainToClass(TasksRequest, request);
|
||||
|
||||
const errors = await validate(valdationObject);
|
||||
expect(errors.length).toBe(0);
|
||||
});
|
||||
it('limitが0より小さい場合、リクエストが失敗する', async () => {
|
||||
const request = new TasksRequest();
|
||||
request.limit = -1;
|
||||
|
||||
const valdationObject = plainToClass(TasksRequest, request);
|
||||
|
||||
const errors = await validate(valdationObject);
|
||||
expect(errors.length).toBe(1);
|
||||
});
|
||||
it('limitが文字列の場合、リクエストが失敗する', async () => {
|
||||
const request = { limit: 'test' };
|
||||
|
||||
const valdationObject = plainToClass(TasksRequest, request);
|
||||
|
||||
const errors = await validate(valdationObject);
|
||||
expect(errors.length).toBe(1);
|
||||
});
|
||||
it('offsetが0より小さい場合、リクエストが失敗する', async () => {
|
||||
const request = new TasksRequest();
|
||||
request.offset = -1;
|
||||
|
||||
const valdationObject = plainToClass(TasksRequest, request);
|
||||
|
||||
const errors = await validate(valdationObject);
|
||||
expect(errors.length).toBe(1);
|
||||
});
|
||||
it('offsetが文字列の場合、リクエストが失敗する', async () => {
|
||||
const request = { offset: 'test' };
|
||||
|
||||
const valdationObject = plainToClass(TasksRequest, request);
|
||||
|
||||
const errors = await validate(valdationObject);
|
||||
expect(errors.length).toBe(1);
|
||||
});
|
||||
it('statusがタスクのステータス文字列以外の場合、リクエストが失敗する', async () => {
|
||||
const request = new TasksRequest();
|
||||
request.status = 'test';
|
||||
|
||||
const valdationObject = plainToClass(TasksRequest, request);
|
||||
|
||||
const errors = await validate(valdationObject);
|
||||
expect(errors.length).toBe(1);
|
||||
});
|
||||
it('directionがASC,DESC以外の場合、リクエストが失敗する', async () => {
|
||||
const request = new TasksRequest();
|
||||
request.direction = 'test';
|
||||
|
||||
const valdationObject = plainToClass(TasksRequest, request);
|
||||
|
||||
const errors = await validate(valdationObject);
|
||||
expect(errors.length).toBe(1);
|
||||
});
|
||||
it('paramNameがTASK_LIST_SORTABLE_ATTRIBUTES以外の場合、リクエストが失敗する', async () => {
|
||||
const request = new TasksRequest();
|
||||
request.paramName = 'test';
|
||||
|
||||
const valdationObject = plainToClass(TasksRequest, request);
|
||||
|
||||
const errors = await validate(valdationObject);
|
||||
expect(errors.length).toBe(1);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user