@deessejs/type-testing
Advanced tools
| /** | ||
| * Vitest integration for type-testing. | ||
| * | ||
| * @packageDocumentation | ||
| */ | ||
| export { toBeType, toNotBeType, toExtend, toNotExtend, toHaveProperty, toBeAny, toBeNever, toBeUnknown, toBeVoid, toBeUndefined, toBeNull, toBeNullable, toBeOptional, toBeUnion, toBeTuple, toBeArray, toBeInhabited, toBeUninhabited, expectType } from './matchers.js'; | ||
| //# sourceMappingURL=index.d.ts.map |
| {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/vitest/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,QAAQ,EACR,WAAW,EACX,QAAQ,EACR,WAAW,EACX,cAAc,EACd,OAAO,EACP,SAAS,EACT,WAAW,EACX,QAAQ,EACR,aAAa,EACb,QAAQ,EACR,YAAY,EACZ,YAAY,EACZ,SAAS,EACT,SAAS,EACT,SAAS,EACT,aAAa,EACb,eAAe,EACf,UAAU,EACX,MAAM,eAAe,CAAA"} |
| /** | ||
| * Vitest integration for type-testing. | ||
| * | ||
| * @packageDocumentation | ||
| */ | ||
| export { toBeType, toNotBeType, toExtend, toNotExtend, toHaveProperty, toBeAny, toBeNever, toBeUnknown, toBeVoid, toBeUndefined, toBeNull, toBeNullable, toBeOptional, toBeUnion, toBeTuple, toBeArray, toBeInhabited, toBeUninhabited, expectType } from './matchers.js'; | ||
| //# sourceMappingURL=index.js.map |
| {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/vitest/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,QAAQ,EACR,WAAW,EACX,QAAQ,EACR,WAAW,EACX,cAAc,EACd,OAAO,EACP,SAAS,EACT,WAAW,EACX,QAAQ,EACR,aAAa,EACb,QAAQ,EACR,YAAY,EACZ,YAAY,EACZ,SAAS,EACT,SAAS,EACT,SAAS,EACT,aAAa,EACb,eAAe,EACf,UAAU,EACX,MAAM,eAAe,CAAA"} |
| /** | ||
| * Custom Vitest matchers for type testing. | ||
| */ | ||
| import type { Equal, NotEqual } from '../types/equality.js'; | ||
| import type { IsAny, IsNever, IsUnknown, IsVoid, IsUndefined, IsNull, IsNullable, IsOptional } from '../types/special.js'; | ||
| import type { IsUnion, IsTuple, IsArray } from '../types/union.js'; | ||
| import type { IsInhabited, IsUninhabited } from '../types/inhabitation.js'; | ||
| import type { HasProperty } from '../types/property.js'; | ||
| import type { CheckPass } from '../api/check.js'; | ||
| /** | ||
| * Creates a Vitest matcher for type equality. | ||
| * | ||
| * @example | ||
| * ```typescript | ||
| * import { expect, test } from 'vitest' | ||
| * import { toBeType } from '@deessejs/type-testing/vitest' | ||
| * | ||
| * expect.extend({ toBeType }) | ||
| * | ||
| * test('type check', () => { | ||
| * expectType<string>().toBeType<string>() | ||
| * }) | ||
| * ``` | ||
| */ | ||
| export declare function toBeType<T, U>(): Equal<T, U> extends true ? CheckPass : never; | ||
| /** | ||
| * Creates a Vitest matcher for type inequality. | ||
| */ | ||
| export declare function toNotBeType<T, U>(): NotEqual<T, U> extends true ? CheckPass : never; | ||
| /** | ||
| * Creates a Vitest matcher for type extends check. | ||
| */ | ||
| export declare function toExtend<T, U>(): T extends U ? CheckPass : never; | ||
| /** | ||
| * Creates a Vitest matcher for type not extends check. | ||
| */ | ||
| export declare function toNotExtend<T, U>(): T extends U ? never : CheckPass; | ||
| /** | ||
| * Creates a Vitest matcher for property existence. | ||
| */ | ||
| export declare function toHaveProperty<T, K extends keyof T>(): HasProperty<T, K> extends true ? CheckPass : never; | ||
| /** | ||
| * Creates a Vitest matcher for any type check. | ||
| */ | ||
| export declare function toBeAny<T>(): IsAny<T> extends true ? CheckPass : never; | ||
| /** | ||
| * Creates a Vitest matcher for never type check. | ||
| */ | ||
| export declare function toBeNever<T>(): IsNever<T> extends true ? CheckPass : never; | ||
| /** | ||
| * Creates a Vitest matcher for unknown type check. | ||
| */ | ||
| export declare function toBeUnknown<T>(): IsUnknown<T> extends true ? CheckPass : never; | ||
| /** | ||
| * Creates a Vitest matcher for void type check. | ||
| */ | ||
| export declare function toBeVoid<T>(): IsVoid<T> extends true ? CheckPass : never; | ||
| /** | ||
| * Creates a Vitest matcher for undefined type check. | ||
| */ | ||
| export declare function toBeUndefined<T>(): IsUndefined<T> extends true ? CheckPass : never; | ||
| /** | ||
| * Creates a Vitest matcher for null type check. | ||
| */ | ||
| export declare function toBeNull<T>(): IsNull<T> extends true ? CheckPass : never; | ||
| /** | ||
| * Creates a Vitest matcher for nullable type check. | ||
| */ | ||
| export declare function toBeNullable<T>(): IsNullable<T> extends true ? CheckPass : never; | ||
| /** | ||
| * Creates a Vitest matcher for optional type check. | ||
| */ | ||
| export declare function toBeOptional<T>(): IsOptional<T> extends true ? CheckPass : never; | ||
| /** | ||
| * Creates a Vitest matcher for union type check. | ||
| */ | ||
| export declare function toBeUnion<T>(): IsUnion<T> extends true ? CheckPass : never; | ||
| /** | ||
| * Creates a Vitest matcher for tuple type check. | ||
| */ | ||
| export declare function toBeTuple<T>(): IsTuple<T> extends true ? CheckPass : never; | ||
| /** | ||
| * Creates a Vitest matcher for array type check. | ||
| */ | ||
| export declare function toBeArray<T>(): IsArray<T> extends true ? CheckPass : never; | ||
| /** | ||
| * Creates a Vitest matcher for inhabited type check. | ||
| */ | ||
| export declare function toBeInhabited<T>(): IsInhabited<T> extends true ? CheckPass : never; | ||
| /** | ||
| * Creates a Vitest matcher for uninhabited type check. | ||
| */ | ||
| export declare function toBeUninhabited<T>(): IsUninhabited<T> extends true ? CheckPass : never; | ||
| /** | ||
| * Helper function to create a type holder for testing. | ||
| * | ||
| * @example | ||
| * ```typescript | ||
| * expectType<string>().toBeType<string>() | ||
| * ``` | ||
| */ | ||
| export declare function expectType<T>(): { | ||
| toBeType<U>(): Equal<T, U> extends true ? CheckPass : never; | ||
| toNotBeType<U>(): NotEqual<T, U> extends true ? CheckPass : never; | ||
| toExtend<U>(): T extends U ? CheckPass : never; | ||
| toNotExtend<U>(): T extends U ? never : CheckPass; | ||
| toHaveProperty<K extends keyof T>(): HasProperty<T, K> extends true ? CheckPass : never; | ||
| toBeAny(): IsAny<T> extends true ? CheckPass : never; | ||
| toBeNever(): IsNever<T> extends true ? CheckPass : never; | ||
| toBeUnknown(): IsUnknown<T> extends true ? CheckPass : never; | ||
| toBeVoid(): IsVoid<T> extends true ? CheckPass : never; | ||
| toBeUndefined(): IsUndefined<T> extends true ? CheckPass : never; | ||
| toBeNull(): IsNull<T> extends true ? CheckPass : never; | ||
| toBeNullable(): IsNullable<T> extends true ? CheckPass : never; | ||
| toBeOptional(): IsOptional<T> extends true ? CheckPass : never; | ||
| toBeUnion(): IsUnion<T> extends true ? CheckPass : never; | ||
| toBeTuple(): IsTuple<T> extends true ? CheckPass : never; | ||
| toBeArray(): IsArray<T> extends true ? CheckPass : never; | ||
| toBeInhabited(): IsInhabited<T> extends true ? CheckPass : never; | ||
| toBeUninhabited(): IsUninhabited<T> extends true ? CheckPass : never; | ||
| }; | ||
| //# sourceMappingURL=matchers.d.ts.map |
| {"version":3,"file":"matchers.d.ts","sourceRoot":"","sources":["../../src/vitest/matchers.ts"],"names":[],"mappings":"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"} |
| /** | ||
| * Custom Vitest matchers for type testing. | ||
| */ | ||
| /** | ||
| * Creates a Vitest matcher for type equality. | ||
| * | ||
| * @example | ||
| * ```typescript | ||
| * import { expect, test } from 'vitest' | ||
| * import { toBeType } from '@deessejs/type-testing/vitest' | ||
| * | ||
| * expect.extend({ toBeType }) | ||
| * | ||
| * test('type check', () => { | ||
| * expectType<string>().toBeType<string>() | ||
| * }) | ||
| * ``` | ||
| */ | ||
| export function toBeType() { | ||
| return undefined; | ||
| } | ||
| /** | ||
| * Creates a Vitest matcher for type inequality. | ||
| */ | ||
| export function toNotBeType() { | ||
| return undefined; | ||
| } | ||
| /** | ||
| * Creates a Vitest matcher for type extends check. | ||
| */ | ||
| export function toExtend() { | ||
| return undefined; | ||
| } | ||
| /** | ||
| * Creates a Vitest matcher for type not extends check. | ||
| */ | ||
| export function toNotExtend() { | ||
| return undefined; | ||
| } | ||
| /** | ||
| * Creates a Vitest matcher for property existence. | ||
| */ | ||
| export function toHaveProperty() { | ||
| return undefined; | ||
| } | ||
| /** | ||
| * Creates a Vitest matcher for any type check. | ||
| */ | ||
| export function toBeAny() { | ||
| return undefined; | ||
| } | ||
| /** | ||
| * Creates a Vitest matcher for never type check. | ||
| */ | ||
| export function toBeNever() { | ||
| return undefined; | ||
| } | ||
| /** | ||
| * Creates a Vitest matcher for unknown type check. | ||
| */ | ||
| export function toBeUnknown() { | ||
| return undefined; | ||
| } | ||
| /** | ||
| * Creates a Vitest matcher for void type check. | ||
| */ | ||
| export function toBeVoid() { | ||
| return undefined; | ||
| } | ||
| /** | ||
| * Creates a Vitest matcher for undefined type check. | ||
| */ | ||
| export function toBeUndefined() { | ||
| return undefined; | ||
| } | ||
| /** | ||
| * Creates a Vitest matcher for null type check. | ||
| */ | ||
| export function toBeNull() { | ||
| return undefined; | ||
| } | ||
| /** | ||
| * Creates a Vitest matcher for nullable type check. | ||
| */ | ||
| export function toBeNullable() { | ||
| return undefined; | ||
| } | ||
| /** | ||
| * Creates a Vitest matcher for optional type check. | ||
| */ | ||
| export function toBeOptional() { | ||
| return undefined; | ||
| } | ||
| /** | ||
| * Creates a Vitest matcher for union type check. | ||
| */ | ||
| export function toBeUnion() { | ||
| return undefined; | ||
| } | ||
| /** | ||
| * Creates a Vitest matcher for tuple type check. | ||
| */ | ||
| export function toBeTuple() { | ||
| return undefined; | ||
| } | ||
| /** | ||
| * Creates a Vitest matcher for array type check. | ||
| */ | ||
| export function toBeArray() { | ||
| return undefined; | ||
| } | ||
| /** | ||
| * Creates a Vitest matcher for inhabited type check. | ||
| */ | ||
| export function toBeInhabited() { | ||
| return undefined; | ||
| } | ||
| /** | ||
| * Creates a Vitest matcher for uninhabited type check. | ||
| */ | ||
| export function toBeUninhabited() { | ||
| return undefined; | ||
| } | ||
| /** | ||
| * Helper function to create a type holder for testing. | ||
| * | ||
| * @example | ||
| * ```typescript | ||
| * expectType<string>().toBeType<string>() | ||
| * ``` | ||
| */ | ||
| export function expectType() { | ||
| return {}; | ||
| } | ||
| //# sourceMappingURL=matchers.js.map |
| {"version":3,"file":"matchers.js","sourceRoot":"","sources":["../../src/vitest/matchers.ts"],"names":[],"mappings":"AAAA;;GAEG;AASH;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,QAAQ;IACtB,OAAO,SAAgB,CAAA;AACzB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW;IACzB,OAAO,SAAgB,CAAA;AACzB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,QAAQ;IACtB,OAAO,SAAgB,CAAA;AACzB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW;IACzB,OAAO,SAAgB,CAAA;AACzB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc;IAC5B,OAAO,SAAgB,CAAA;AACzB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,OAAO;IACrB,OAAO,SAAgB,CAAA;AACzB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,SAAS;IACvB,OAAO,SAAgB,CAAA;AACzB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW;IACzB,OAAO,SAAgB,CAAA;AACzB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,QAAQ;IACtB,OAAO,SAAgB,CAAA;AACzB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa;IAC3B,OAAO,SAAgB,CAAA;AACzB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,QAAQ;IACtB,OAAO,SAAgB,CAAA;AACzB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY;IAC1B,OAAO,SAAgB,CAAA;AACzB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY;IAC1B,OAAO,SAAgB,CAAA;AACzB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,SAAS;IACvB,OAAO,SAAgB,CAAA;AACzB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,SAAS;IACvB,OAAO,SAAgB,CAAA;AACzB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,SAAS;IACvB,OAAO,SAAgB,CAAA;AACzB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa;IAC3B,OAAO,SAAgB,CAAA;AACzB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe;IAC7B,OAAO,SAAgB,CAAA;AACzB,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,UAAU;IAoBxB,OAAO,EAAS,CAAA;AAClB,CAAC"} |
| /** | ||
| * Vitest setup for type-testing. | ||
| * | ||
| * This module provides integration with Vitest. | ||
| * | ||
| * @example | ||
| * ```typescript | ||
| * // vitest.config.ts | ||
| * import { defineConfig } from 'vitest/config' | ||
| * | ||
| * export default defineConfig({ | ||
| * test: { | ||
| * setupFiles: ['@deessejs/type-testing/vitest/setup'] | ||
| * } | ||
| * }) | ||
| * ``` | ||
| */ | ||
| export { expectType } from './matchers.js'; | ||
| //# sourceMappingURL=setup.d.ts.map |
| {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/vitest/setup.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA"} |
| /** | ||
| * Vitest setup for type-testing. | ||
| * | ||
| * This module provides integration with Vitest. | ||
| * | ||
| * @example | ||
| * ```typescript | ||
| * // vitest.config.ts | ||
| * import { defineConfig } from 'vitest/config' | ||
| * | ||
| * export default defineConfig({ | ||
| * test: { | ||
| * setupFiles: ['@deessejs/type-testing/vitest/setup'] | ||
| * } | ||
| * }) | ||
| * ``` | ||
| */ | ||
| export { expectType } from './matchers.js'; | ||
| //# sourceMappingURL=setup.js.map |
| {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/vitest/setup.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA"} |
+9
-1
| { | ||
| "name": "@deessejs/type-testing", | ||
| "version": "0.3.2", | ||
| "version": "0.3.3", | ||
| "type": "module", | ||
@@ -19,2 +19,10 @@ "main": "./dist/index.js", | ||
| "types": "./dist/index.d.ts" | ||
| }, | ||
| "./vitest": { | ||
| "import": "./dist/vitest/index.js", | ||
| "types": "./dist/vitest/index.d.ts" | ||
| }, | ||
| "./vitest/setup": { | ||
| "import": "./dist/vitest/setup.js", | ||
| "types": "./dist/vitest/setup.d.ts" | ||
| } | ||
@@ -21,0 +29,0 @@ }, |
+111
-0
@@ -340,2 +340,113 @@ # @deessejs/type-testing | ||
| ## Vitest Integration | ||
| The library provides a native Vitest integration with custom matchers for a more familiar testing experience. | ||
| ### Installation | ||
| ```bash | ||
| npm install @deessejs/type-testing | ||
| ``` | ||
| ### Quick Start | ||
| ```typescript | ||
| import { expectType } from '@deessejs/type-testing/vitest' | ||
| // Type equality | ||
| expectType<string>().toBeType<string>() | ||
| expectType<string>().toNotBeType<number>() | ||
| // Type extends | ||
| expectType<string>().toExtend<string>() | ||
| expectType<string>().toNotExtend<number>() | ||
| // Property check | ||
| expectType<{ a: string }>().toHaveProperty('a') | ||
| // Special types | ||
| expectType<any>().toBeAny() | ||
| expectType<never>().toBeNever() | ||
| expectType<unknown>().toBeUnknown() | ||
| expectType<void>().toBeVoid() | ||
| expectType<undefined>().toBeUndefined() | ||
| expectType<null>().toBeNull() | ||
| // Nullable/Optional | ||
| expectType<string | null>().toBeNullable() | ||
| expectType<{ a?: string }>().toBeOptional() | ||
| // Structure | ||
| expectType<string | number>().toBeUnion() | ||
| expectType<[string, number]>().toBeTuple() | ||
| expectType<string[]>().toBeArray() | ||
| // Inhabitation | ||
| expectType<string>().toBeInhabited() | ||
| expectType<never>().toBeUninhabited() | ||
| ``` | ||
| ### Using with Vitest's expect.extend | ||
| You can also extend Vitest's expect with the matchers: | ||
| ```typescript | ||
| import { expect, test } from 'vitest' | ||
| import { toBeType, toHaveProperty } from '@deessejs/type-testing/vitest' | ||
| expect.extend({ toBeType, toHaveProperty }) | ||
| test('type checks', () => { | ||
| expect<string>().toBeType<string>() | ||
| expect<{ a: string }>().toHaveProperty('a') | ||
| }) | ||
| ``` | ||
| ### Setup File | ||
| For automatic matcher registration, add the setup file to your Vitest config: | ||
| ```typescript | ||
| // vitest.config.ts | ||
| import { defineConfig } from 'vitest/config' | ||
| export default defineConfig({ | ||
| test: { | ||
| setupFiles: ['@deessejs/type-testing/vitest/setup'] | ||
| } | ||
| }) | ||
| ``` | ||
| Or import it in your setup file: | ||
| ```typescript | ||
| // setup.ts | ||
| import '@deessejs/type-testing/vitest/setup' | ||
| ``` | ||
| ### Available Matchers | ||
| | Matcher | Description | | ||
| |---------|-------------| | ||
| | `toBeType<T>()` | Asserts type equality | | ||
| | `toNotBeType<T>()` | Asserts type inequality | | ||
| | `toExtend<T>()` | Asserts type extends another | | ||
| | `toNotExtend<T>()` | Asserts type does not extend another | | ||
| | `toHaveProperty<K>()` | Asserts property exists | | ||
| | `toBeAny()` | Asserts type is `any` | | ||
| | `toBeNever()` | Asserts type is `never` | | ||
| | `toBeUnknown()` | Asserts type is `unknown` | | ||
| | `toBeVoid()` | Asserts type is `void` | | ||
| | `toBeUndefined()` | Asserts type is `undefined` | | ||
| | `toBeNull()` | Asserts type is `null` | | ||
| | `toBeNullable()` | Asserts type is nullable | | ||
| | `toBeOptional()` | Asserts type is optional | | ||
| | `toBeUnion()` | Asserts type is a union | | ||
| | `toBeTuple()` | Asserts type is a tuple | | ||
| | `toBeArray()` | Asserts type is an array | | ||
| | `toBeInhabited()` | Asserts type is inhabited | | ||
| | `toBeUninhabited()` | Asserts type is uninhabited | | ||
| > **Note**: The `toNotBeType` matcher follows a different pattern than standard Vitest (`not.toBeType`). This is intentional as it provides better TypeScript inference. Use `toNotBeType` instead of `.not.toBeType`. | ||
| ## Compile-time Assertions | ||
@@ -342,0 +453,0 @@ |
96698
23.81%85
16.44%1317
29.88%534
26.24%