Créer ou mettre à jour un fichier de test unitaire Vitest pour une fonction TypeScript donnée, namespacée via @scripts (namespace.function), en respectant les conventions de test du projet (ExpectType strict, compatibilité pipe, pas de helpers partagés).
Générer (ou mettre à jour) un fichier de test Vitest pour une fonction de la librairie, en garantissant :
ExpectType en mode strictLa fonction testée est toujours appelée via son namespace (ex. DArray.copyWithin).
Le prompt utilisateur fournira généralement :
DArray.copyWithinVous DEVEZ déduire le reste en inspectant le repository :
scripts/<domain>/<function>.tstests/<domain>/<function>.test.tsvalue is ...)Créer ou mettre à jour :
tests/<domain>/<function>.test.tsRègle de mapping (cas standard) :
scripts/array/copyWithin.ts → tests/array/copyWithin.test.ts:warning: Certains tests rares couvrent plusieurs fonctions dans un seul fichier. NE PAS reproduire ce pattern sauf demande explicite de l’utilisateur.
@scripts.pipe toujours car le test pipe est obligatoire).when (tests de prédicat dans pipe), importez-le aussi depuis @scripts.Exemple :
import { DArray, type ExpectType, pipe } from "@scripts";
describe("<functionName>", () => { ... })it doit être :
itDArray.copyWithin(...)copyWithin(...)Chaque fonction doit avoir au moins un test qui vérifie qu’elle fonctionne dans :
pipe(input, Namespace.fn(...), ...)
Utiliser la surcharge currifiée si nécessaire pour qu’elle puisse être utilisée dans pipe.ExpectType dans le fichier (souvent plus)."strict" et rien d’autre.Exemple :
type check = ExpectType<
typeof result,
number[],
"strict"
>;
Les tests doivent viser à couvrir :
Si la fonction n’est ni :
assets/standard.mdVous DEVEZ inclure :
if (result) avec ExpectType.when(predicate, (value) => { type check ... }).
Template à utiliser :assets/predicate-function.mdVous DEVEZ inclure :
isType, equal, etc.) comme entrée.
Template à utiliser :assets/takes-predicate.mdassets/standard.mdassets/predicate-function.mdassets/takes-predicate.mdit indépendant (pas d’état partagé)it sont en anglais et explicitesnpm run test:tunpm run test:tu -- tests/<domain>/<function>.test.tsnpm run test:tu -- -t "<describe or it text>"test:tu:update, test:tu:bench, ou test:tu:watch sauf demande explicite.Search for places (restaurants, cafes, etc.) via Google Places API proxy on localhost.
Interact with GitHub using the `gh` CLI. Use `gh issue`, `gh pr`, `gh run`, and `gh api` for issues, PRs, CI runs, and advanced queries.
Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.
Start voice calls via the OpenClaw voice-call plugin.
Notion API for creating and managing pages, databases, and blocks.
Gemini CLI for one-shot Q&A, summaries, and generation.
Category:developer