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

@@ -1,5 +1,5 @@
import { PartialType } from '@nestjs/mapped-types';
import { IsOptional, IsString, IsNumber, IsDateString } from 'class-validator';
import { IsOptional, IsString, IsNumber, IsDateString, IsNotEmpty, Min } from 'class-validator';
export class UpsertProfileDto {
@IsOptional() @IsString() targetCollege?: string;
@@ -11,8 +11,8 @@ export class UpsertProfileDto {
}
export class CreateEnrollmentDto {
@IsString() courseCategory: string;
@IsString() classType: string;
@IsString() @IsNotEmpty() courseCategory: string;
@IsString() @IsNotEmpty() classType: string;
@IsOptional() @IsString() className?: string;
@IsOptional() @IsString() headTeacher?: string;
@IsOptional() @IsString() subjectTeacher?: string;
@@ -24,12 +24,12 @@ export class CreateEnrollmentDto {
export class UpdateEnrollmentDto extends PartialType(CreateEnrollmentDto) {}
export class CreateExamScoreDto {
@IsString() examType: string;
@IsString() @IsNotEmpty() examType: string;
@IsOptional() @IsString() examName?: string;
@IsString() subject: string;
@IsNumber() score: number;
@IsOptional() @IsNumber() classAvg?: number;
@IsOptional() @IsNumber() rank?: number;
@IsString() @IsNotEmpty() subject: string;
@IsNumber() @Min(0) score: number;
@IsOptional() @IsNumber() @Min(0) classAvg?: number;
@IsOptional() @IsNumber() @Min(1) rank?: number;
@IsOptional() @IsDateString() examDate?: string;
@IsOptional() @IsNumber() enrollmentId?: number;
}
@@ -38,8 +38,8 @@ export class UpdateExamScoreDto extends PartialType(CreateExamScoreDto) {}
export class CreateLearningRecordDto {
@IsDateString() recordDate: string;
@IsString() recordType: string;
@IsString() content: string;
@IsString() @IsNotEmpty() recordType: string;
@IsString() @IsNotEmpty() content: string;
@IsOptional() @IsString() followUpMethod?: string;
@IsOptional() @IsString() nextStep?: string;
}
@@ -47,8 +47,8 @@ export class CreateLearningRecordDto {
export class UpdateLearningRecordDto extends PartialType(CreateLearningRecordDto) {}
export class UpsertResultDto {
@IsOptional() @IsNumber() cultureFinalScore?: number;
@IsOptional() @IsNumber() professionalFinalScore?: number;
@IsOptional() @IsNumber() @Min(0) cultureFinalScore?: number;
@IsOptional() @IsNumber() @Min(0) professionalFinalScore?: number;
@IsOptional() @IsString() admissionStatus?: string;
@IsOptional() @IsString() admittedCollege?: string;
@IsOptional() @IsString() admittedMajor?: string;