Merged PR 905: POST /accounts/worktypes/{id}

## 概要
[Task3986: POST /accounts/worktypes/{id}](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3986)

- 元PBI or タスクへのリンク(内容・目的などはそちらにあるはず)
- 何をどう変更したか、追加したライブラリなど
- このPull Requestでの対象/対象外
- 影響範囲(他の機能にも影響があるか)

## レビューポイント
- 特にレビューしてほしい箇所
- 軽微なものや自明なものは記載不要
- 修正範囲が大きい場合などに記載
- 全体的にや仕様を満たしているか等は本当に必要な時のみ記載
- 修正箇所がほかの機能に影響していないか

## UIの変更
- Before/Afterのスクショなど
- スクショ置き場

## クエリの変更
- Repositoryを変更し、クエリが変更された場合は変更内容を確認する
- Before/Afterのクエリ
- クエリ置き場

## 動作確認状況
- ローカルで確認、develop環境で確認など
- 行った修正がデグレを発生させていないことを確認できるか
  - 具体的にどのような確認をしたか
    - どのケースに対してどのような手段でデグレがないことを担保しているか

## 補足
- 相談、参考資料などがあれば
This commit is contained in:
makabe.t 2024-06-04 04:25:54 +00:00
parent 909c2a6d55
commit 4f7d65f0e8

View File

@ -9,6 +9,8 @@ import {
GetPartnerUsersRequest,
UpdatePartnerInfoRequest,
CreateWorktypesRequest,
UpdateWorktypesRequest,
UpdateWorktypeRequestParam,
} from './types/types';
import { plainToClass } from 'class-transformer';
import { validate } from 'class-validator';
@ -124,6 +126,101 @@ describe('AccountsController', () => {
});
});
describe('valdation UpdateWorktypesRequest', () => {
it('最低限の有効なリクエストが成功する', async () => {
const request = new UpdateWorktypesRequest();
request.worktypeId = 'TEST';
const valdationObject = plainToClass(UpdateWorktypesRequest, request);
const errors = await validate(valdationObject);
expect(errors.length).toBe(0);
});
it('worktypeIdが指定されていない場合、リクエストが失敗する', async () => {
const request = new UpdateWorktypesRequest();
const valdationObject = plainToClass(UpdateWorktypesRequest, request);
const errors = await validate(valdationObject);
expect(errors.length).toBe(1);
});
it('worktypeIdが空文字の場合、リクエストが失敗する', async () => {
const request = new UpdateWorktypesRequest();
request.worktypeId = '';
const valdationObject = plainToClass(UpdateWorktypesRequest, request);
const errors = await validate(valdationObject);
expect(errors.length).toBe(1);
});
it('worktypeIdが16文字を超える場合、リクエストが失敗する', async () => {
const request = new UpdateWorktypesRequest();
request.worktypeId = '123456789A1234567';
const valdationObject = plainToClass(UpdateWorktypesRequest, request);
const errors = await validate(valdationObject);
expect(errors.length).toBe(1);
});
it('worktypeIdが16文字の場合、リクエストが成功する', async () => {
const request = new UpdateWorktypesRequest();
request.worktypeId = '123456789A123456';
const valdationObject = plainToClass(UpdateWorktypesRequest, request);
const errors = await validate(valdationObject);
expect(errors.length).toBe(0);
});
it('worktypeIdに使用不可文字が含まれる場合、リクエストが失敗する', async () => {
const request = new UpdateWorktypesRequest();
request.worktypeId = 'test.test';
const valdationObject = plainToClass(UpdateWorktypesRequest, request);
const errors = await validate(valdationObject);
expect(errors.length).toBe(1);
});
it('descriptionが255文字を超える場合、リクエストが失敗する', async () => {
const request = new UpdateWorktypesRequest();
request.worktypeId = 'TEST';
request.description =
'1234567A0A1234567A1A1234567A2A1234567A3A1234567A4A1234567A5A1234567A6A1234567A7A1234567A8A1234567A9A' +
'1234567B0B1234567B1B1234567B2B1234567B3B1234567B4B1234567B5B1234567B6B1234567B7B1234567B8B1234567B9B' +
'1234567A0A1234567A1A1234567A2A1234567A3A1234567A4A123456';
const valdationObject = plainToClass(UpdateWorktypesRequest, request);
const errors = await validate(valdationObject);
expect(errors.length).toBe(1);
});
it('descriptionが255文字の場合、リクエストが成功する', async () => {
const request = new UpdateWorktypesRequest();
request.worktypeId = 'TEST';
request.description =
'1234567A0A1234567A1A1234567A2A1234567A3A1234567A4A1234567A5A1234567A6A1234567A7A1234567A8A1234567A9A' +
'1234567B0B1234567B1B1234567B2B1234567B3B1234567B4B1234567B5B1234567B6B1234567B7B1234567B8B1234567B9B' +
'1234567A0A1234567A1A1234567A2A1234567A3A1234567A4A12345';
const valdationObject = plainToClass(UpdateWorktypesRequest, request);
const errors = await validate(valdationObject);
expect(errors.length).toBe(0);
});
});
describe('valdation UpdateWorktypeRequestParam', () => {
it('最低限の有効なリクエストが成功する', async () => {
const request = new UpdateWorktypeRequestParam();
request.id = 1;
const valdationObject = plainToClass(UpdateWorktypeRequestParam, request);
const errors = await validate(valdationObject);
expect(errors.length).toBe(0);
});
it('idが1より小さい場合、リクエストが失敗する', async () => {
const request = new UpdateWorktypeRequestParam();
request.id = 0;
const valdationObject = plainToClass(UpdateWorktypeRequestParam, request);
const errors = await validate(valdationObject);
expect(errors.length).toBe(1);
});
it('idが数値でない場合、リクエストが失敗する', async () => {
const request = { id: '0' };
const valdationObject = plainToClass(UpdateWorktypeRequestParam, request);
const errors = await validate(valdationObject);
expect(errors.length).toBe(1);
});
});
describe('valdation switchParentRequest', () => {
it('最低限の有効なリクエストが成功する', async () => {
const request = new SwitchParentRequest();