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:
makabe.t 2024-05-09 01:20:57 +00:00
parent 3ea84a3597
commit ffd6eb4e68

View File

@ -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);
});
});
});