test: harden business boundary conditions

This commit is contained in:
2026-07-15 00:03:55 +08:00
parent 17a5046ea0
commit b1f35f9d1a
65 changed files with 2311 additions and 293 deletions

View File

@@ -0,0 +1,74 @@
import { Type } from 'class-transformer';
import {
IsISO8601,
IsInt,
IsNotEmpty,
IsOptional,
IsString,
Matches,
Max,
MaxLength,
Min,
} from 'class-validator';
export class QueryOperationLogsDto {
@IsOptional()
@IsString()
@MaxLength(50)
module?: string;
@IsOptional()
@Type(() => Number)
@IsInt()
@Min(1)
userId?: number;
@IsOptional()
@Matches(/^\d{4}-\d{2}-\d{2}$/)
@IsISO8601({ strict: true })
startDate?: string;
@IsOptional()
@Matches(/^\d{4}-\d{2}-\d{2}$/)
@IsISO8601({ strict: true })
endDate?: string;
@IsOptional()
@Type(() => Number)
@IsInt()
@Min(1)
page: number = 1;
@IsOptional()
@Type(() => Number)
@IsInt()
@Min(1)
@Max(200)
pageSize: number = 50;
}
export class CreateAuditLogDto {
@IsString()
@IsNotEmpty()
@MaxLength(50)
module: string;
@IsString()
@IsNotEmpty()
@MaxLength(100)
action: string;
@IsOptional()
@IsInt()
targetId?: number;
@IsOptional()
@IsString()
@MaxLength(50)
targetType?: string;
@IsOptional()
@IsString()
@MaxLength(2000)
detail?: string;
}