Merge branch 'develop' into release-ccb

This commit is contained in:
SAITO-PC-3\saito.k 2024-05-24 16:17:03 +09:00
commit c16a8b023c
2 changed files with 188 additions and 2 deletions

View File

@ -2,7 +2,7 @@ import { Test, TestingModule } from '@nestjs/testing';
import { FilesController } from './files.controller';
import { FilesService } from './files.service';
import { ConfigModule } from '@nestjs/config';
import { FileRenameRequest } from './types/types';
import { AudioUploadFinishedRequest, FileRenameRequest } from './types/types';
import { plainToClass } from 'class-transformer';
import { validate } from 'class-validator';
@ -111,3 +111,189 @@ describe('valdation FileRenameRequest', () => {
expect(errors.length).toBe(1);
});
});
describe('valdation AudioUploadFinishedRequest', () => {
it('最低限の有効なリクエストが成功する', async () => {
const request = new AudioUploadFinishedRequest();
request.url = 'url';
request.authorId = 'authorId';
request.fileName = 'fileName';
request.duration = '10';
request.createdDate = '2024-12-31T23:59:59.999Z';
request.finishedDate = '2024-12-31T23:59:59.999Z';
request.uploadedDate = '2024-12-31T23:59:59.999Z';
request.fileSize = 1;
request.priority = '00';
request.audioFormat = 'DSS';
request.comment = 'comment';
request.workType = 'workType';
request.optionItemList = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10].map((i) => {
return {
optionItemLabel: `optionItemLabel${i}`,
optionItemValue: `optionItemValue${i}`,
};
});
request.isEncrypted = false;
const valdationObject = plainToClass(AudioUploadFinishedRequest, request);
const errors = await validate(valdationObject);
expect(errors.length).toBe(0);
});
it('必須パラメータが空文字の場合、リクエストが失敗する', async () => {
const request = new AudioUploadFinishedRequest();
request.url = ''; //空文字
request.authorId = ''; //空文字
request.fileName = ''; //空文字
request.duration = ''; //空文字
request.createdDate = ''; //空文字
request.finishedDate = ''; //空文字
request.uploadedDate = ''; //空文字
request.priority = ''; //空文字
// fileSizeは設定しない
request.audioFormat = ''; //空文字
request.comment = 'comment';
request.workType = 'workType';
request.optionItemList = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10].map((i) => {
return {
optionItemLabel: `optionItemLabel${i}`,
optionItemValue: `optionItemValue${i}`,
};
});
request.isEncrypted = false;
const valdationObject = plainToClass(AudioUploadFinishedRequest, request);
const errors = await validate(valdationObject);
expect(errors.length).toBe(10);
});
it('durationが数値変換不可の場合、リクエストが失敗する', async () => {
const request = new AudioUploadFinishedRequest();
request.url = 'url';
request.authorId = 'authorId';
request.fileName = 'fileName';
request.duration = 'aaaaa'; //数値変換不可
request.createdDate = '2024-12-31T23:59:59.999Z';
request.finishedDate = '2024-12-31T23:59:59.999Z';
request.uploadedDate = '2024-12-31T23:59:59.999Z';
request.fileSize = 1;
request.priority = '00';
request.audioFormat = 'DSS';
request.comment = 'comment';
request.workType = 'workType';
request.optionItemList = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10].map((i) => {
return {
optionItemLabel: `optionItemLabel${i}`,
optionItemValue: `optionItemValue${i}`,
};
});
request.isEncrypted = false;
const valdationObject = plainToClass(AudioUploadFinishedRequest, request);
const errors = await validate(valdationObject);
expect(errors.length).toBe(1);
});
it('fileSizeが数値でない場合、リクエストが失敗する', async () => {
const request = new AudioUploadFinishedRequest();
request.url = 'url';
request.authorId = 'authorId';
request.fileName = 'fileName';
request.duration = '10';
request.createdDate = '2024-12-31T23:59:59.999Z';
request.finishedDate = '2024-12-31T23:59:59.999Z';
request.uploadedDate = '2024-12-31T23:59:59.999Z';
request.fileSize = 'aaaa' as any; //数値でない
request.priority = '00';
request.audioFormat = 'DSS';
request.comment = 'comment';
request.workType = 'workType';
request.optionItemList = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10].map((i) => {
return {
optionItemLabel: `optionItemLabel${i}`,
optionItemValue: `optionItemValue${i}`,
};
});
request.isEncrypted = false;
const valdationObject = plainToClass(AudioUploadFinishedRequest, request);
const errors = await validate(valdationObject);
expect(errors.length).toBe(1);
});
it('fileSizeがintではない場合、リクエストが失敗する', async () => {
const request = new AudioUploadFinishedRequest();
request.url = 'url';
request.authorId = 'authorId';
request.fileName = 'fileName';
request.duration = '10';
request.createdDate = '2024-12-31T23:59:59.999Z';
request.finishedDate = '2024-12-31T23:59:59.999Z';
request.uploadedDate = '2024-12-31T23:59:59.999Z';
request.fileSize = 5.01; //integerでない
request.priority = '00';
request.audioFormat = 'DSS';
request.comment = 'comment';
request.workType = 'workType';
request.optionItemList = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10].map((i) => {
return {
optionItemLabel: `optionItemLabel${i}`,
optionItemValue: `optionItemValue${i}`,
};
});
request.isEncrypted = false;
const valdationObject = plainToClass(AudioUploadFinishedRequest, request);
const errors = await validate(valdationObject);
expect(errors.length).toBe(1);
});
it('priorityが00,01ではない場合、リクエストが失敗する', async () => {
const request = new AudioUploadFinishedRequest();
request.url = 'url';
request.authorId = 'authorId';
request.fileName = 'fileName';
request.duration = '10';
request.createdDate = '2024-12-31T23:59:59.999Z';
request.finishedDate = '2024-12-31T23:59:59.999Z';
request.uploadedDate = '2024-12-31T23:59:59.999Z';
request.fileSize = 1;
request.priority = '001';
request.audioFormat = 'DSS';
request.comment = 'comment';
request.workType = 'workType';
request.optionItemList = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10].map((i) => {
return {
optionItemLabel: `optionItemLabel${i}`,
optionItemValue: `optionItemValue${i}`,
};
});
request.isEncrypted = false;
const valdationObject = plainToClass(AudioUploadFinishedRequest, request);
const errors = await validate(valdationObject);
expect(errors.length).toBe(1);
});
it('optionItemListが10件ではない場合、リクエストが失敗する', async () => {
const request = new AudioUploadFinishedRequest();
request.url = 'url';
request.authorId = 'authorId';
request.fileName = 'fileName';
request.duration = '10';
request.createdDate = '2024-12-31T23:59:59.999Z';
request.finishedDate = '2024-12-31T23:59:59.999Z';
request.uploadedDate = '2024-12-31T23:59:59.999Z';
request.fileSize = 1;
request.priority = '01';
request.audioFormat = 'DSS';
request.comment = 'comment';
request.workType = 'workType';
request.optionItemList = [1, 2, 3, 4, 5, 6, 7, 8, 9].map((i) => {
return {
optionItemLabel: `optionItemLabel${i}`,
optionItemValue: `optionItemValue${i}`,
};
});
request.isEncrypted = false;
const valdationObject = plainToClass(AudioUploadFinishedRequest, request);
const errors = await validate(valdationObject);
expect(errors.length).toBe(1);
});
});

View File

@ -36,7 +36,7 @@ describe('getWorkflows', () => {
database: 'odms',
entities: [__dirname + '/../../**/*.entity{.ts,.js}'],
synchronize: false, // trueにすると自動的にmigrationが行われるため注意
logger: new TestLogger('file'),
logger: new TestLogger('none'),
logging: true,
});
return await s.initialize();