fix-test
Fix Test compilation errors
معلومات المصدر
- المستودع
- wrtnlabs/autobe
- آخر نشاط في المصدر
- ٢٤ فبراير ٢٠٢٦ في ٠٤:٠٩
- لغة SKILL.md المكتشفة
- الإنجليزية
- النجوم
- ١٬٣٦١
- التفرعات
- ١٥٦
خيارات التثبيت
يُحدَّد Prompt الذي يراجع المصدر أولًا بشكل افتراضي. يمكنك التبديل إلى أمر مباشر أو تنزيل نسخة محلية.
مراجعة ملفات المصدر
اقرأ SKILL.md وأي ملفات مرافقة يعرضها SkillsMP قبل أن تقرر التثبيت.
عرض SKILL.md
SKILL.md
تعليمات المصدر · معاينة للقراءة فقط- name
- fix-test
- description
- Fix Test compilation errors
- allowed-tools
- Read, Edit, Write, Bash, Grep, Glob
# Fix Test Errors
Fix test file compilation errors according to code conventions.
## FORBIDDEN
**NEVER use:**
- `as` keyword (type assertion)
- `any` type
- `typia.random<EmptyType>()` - generates invalid data
---
## Purpose
Fix compilation errors in test files to ensure `npm run build:test` passes.
## Workflow
```
┌─────────────────────────────────────┐
│ Step 1: Run Build │
│ npm run build:test │
└───────────────┬─────────────────────┘
│
▼
┌─────────────────────────────────────┐
│ Step 2: Parse Test Errors │
│ - Empty prepare functions │
│ - Type mismatches │
│ - Missing imports │
└───────────────┬─────────────────────┘
│
▼
┌─────────────────────────────────────┐
│ Step 3: Fix by Convention │
│ - Fill prepare functions │
│ - Create generate functions │
│ - Fix import paths │
└───────────────┬─────────────────────┘
│
▼
┌─────────────────────────────────────┐
│ Step 4: Re-run Build │
│ Loop until 0 errors │
└─────────────────────────────────────┘
```
---
## Step 1: Run Build
```bash
npm run build:test 2>&1 | head -100
```
Capture test-related errors.
---
## Step 2: Find Issues
```bash
# Find empty returns
grep -rn "return {}" test/prepare/ --include="*.ts"
# Find typia.random with potentially empty types
grep -rn "typia.random<" test/ --include="*.ts"
```
---
## Step 3: Fix by Convention
### Fix Empty prepare_random Function
```typescript
// Before
export function prepare_random_{prefix}_{entity}(
input?: DeepPartial<I{Prefix}{Entity}.ICreate> | undefined,
): I{Prefix}{Entity}.ICreate {
return {}; // WRONG
}
// After
import { I{Prefix}{Entity} } from "@ORGANIZATION/PROJECT-api/lib/structures/I{Prefix}{Entity}";
import { DeepPartial } from "@ORGANIZATION/PROJECT-api/lib/typings/DeepPartial";
import { RandomGenerator } from "@nestia/e2e";
import { randint } from "tstl";
import { v4 } from "uuid";
export function prepare_random_{prefix}_{entity}(
input?: DeepPartial<I{Prefix}{Entity}.ICreate> | undefined,
): I{Prefix}{Entity}.ICreate {
return {
parent_id: input?.parent_id ?? v4(),
name: input?.name ?? RandomGenerator.name(2),
title: input?.title ?? RandomGenerator.paragraph(1),
content: input?.content ?? RandomGenerator.paragraph(3),
is_public: input?.is_public ?? true,
status: input?.status ?? "active",
};
}
```
### Create Missing generate_random Function
```typescript
import { I{Prefix}{Entity} } from "@ORGANIZATION/PROJECT-api/lib/structures/I{Prefix}{Entity}";
import { DeepPartial } from "@ORGANIZATION/PROJECT-api/lib/typings/DeepPartial";
import api from "@ORGANIZATION/PROJECT-api";
import { prepare_random_{prefix}_{entity} } from "../prepare/prepare_random_{prefix}_{entity}";
export async function generate_random_{prefix}_{entity}(
connection: api.IConnection,
input?: DeepPartial<I{Prefix}{Entity}.ICreate> | undefined,
): Promise<I{Prefix}{Entity}> {
const body = prepare_random_{prefix}_{entity}(input);
return api.functional.{prefix}.{path}.create(connection, body);
}
```
### Field Generation Patterns
| Field Type | Generation Pattern |
|------------|-------------------|
| UUID | `v4()` |
| Name/Title | `RandomGenerator.name(2)` |
| Paragraph | `RandomGenerator.paragraph(1)` |
| Email | `` `${RandomGenerator.string(8)}@example.com` `` |
| URL | `` `https://example.com/${RandomGenerator.string(10)}` `` |
| Integer | `randint(min, max)` |
| Boolean | `Math.random() > 0.5` |
| Date (ISO) | `new Date().toISOString()` |
| Union Type | `(["val1", "val2"] as const)[randint(0, 1)]` |
### Replace typia.random with prepare function
```typescript
// Before
const data = typia.random<I{Prefix}{Entity}.ICreate>();
// After
import { prepare_random_{prefix}_{entity} } from "../prepare/prepare_random_{prefix}_{entity}";
const data = prepare_random_{prefix}_{entity}({
status: "active", // Can override specific values
});
```
---
## Step 4: Verify
```bash
npm run build:test
```
Repeat Steps 2-4 until no test build errors.
---
## Common Fixes
| Error Pattern | Fix |
|---------------|-----|
| Empty `return {}` | Fill with proper random generators |
| `typia.random<EmptyType>` | Use prepare_random function |
| Missing generate function | Create matching generate_random |
| Import error | Fix import path |
---
## Exit Condition
- `npm run build:test` completes with no errors
- All prepare functions return complete objects
- All generate functions exist for prepare functions
- No `typia.random` with empty types
عرض على GitHub