بنقرة واحدة
testing
Write TypeScript runtime and type tests
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
Write TypeScript runtime and type tests
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
| name | testing |
| description | Write TypeScript runtime and type tests |
Write TypeScript runtime and type tests for this project.
import * as test from "bun:test"
Use test.it for individual tests and test.describe for grouping:
test.describe("MyModule", () => {
test.it("should do something", () => {
// test body
})
})
Never use test.test - always use test.it.
Put each method call on a new line with 2-space indentation:
test.expect(value).toBe(expected)
test.expect(result).toEqual({ foo: "bar" })
test.expect(() => riskyOperation()).toThrow("error message")
Use expect-type for compile-time type checking. Inline types directly - no type aliases:
// Check a value matches a type
type.expectTypeOf(someValue).toMatchObjectType<ExpectedType>()
// Check two types are exactly equal
type.expectTypeOf<ActualType>().toMatchObjectType<ExpectedType>()
// Check a type extends another (less strict)
type.expectTypeOf<SubType>().toExtend<SuperType>()
Avoid variable names that shadow imports. Use descriptive suffixes:
// Bad - shadows `test` import
const test = Route.add("/test", Route.get(Route.text("test")))
// Good
const testRoute = Route.add("/test", Route.get(Route.text("test")))
When testing multiple exported functions or logic, use describe() at the root:
// when testing a function, use its reference:
test.describe(PathPattern.parseSegment, () => {})
test.describe("Params", () => {})
Keep describe() blocks flat and never wrap them in describe(MODULE_NAME)
Co-locate tests with source files: Module.test.ts alongside Module.ts