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:
parent
909c2a6d55
commit
4f7d65f0e8
@ -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();
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user