 aacb45156b
			
		
	
	aacb45156b
	
	
	
		
			
			- Install Jest for unit testing with React Testing Library - Install Playwright for end-to-end testing - Configure Jest with proper TypeScript support and module mapping - Create test setup files and utilities for both unit and e2e tests Components: * Jest configuration with coverage thresholds * Playwright configuration with browser automation * Unit tests for LoginForm, AuthContext, and useSocketIO hook * E2E tests for authentication, dashboard, and agents workflows * GitHub Actions workflow for automated testing * Mock data and API utilities for consistent testing * Test documentation with best practices Testing features: - Unit tests with 70% coverage threshold - E2E tests with API mocking and user journey testing - CI/CD integration for automated test runs - Cross-browser testing support with Playwright - Authentication system testing end-to-end 🚀 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
		
			
				
	
	
		
			138 lines
		
	
	
		
			5.7 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			138 lines
		
	
	
		
			5.7 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| import { MessagePort, TransferListItem } from "node:worker_threads";
 | |
| import * as url0 from "url";
 | |
| 
 | |
| //#region src/constants.d.ts
 | |
| declare const TsRunner: {
 | |
|   readonly Node: "node";
 | |
|   readonly Bun: "bun";
 | |
|   readonly TsNode: "ts-node";
 | |
|   readonly EsbuildRegister: "esbuild-register";
 | |
|   readonly EsbuildRunner: "esbuild-runner";
 | |
|   readonly OXC: "oxc";
 | |
|   readonly SWC: "swc";
 | |
|   readonly TSX: "tsx";
 | |
| };
 | |
| type TsRunner = ValueOf<typeof TsRunner>;
 | |
| declare const TS_ESM_PARTIAL_SUPPORTED: boolean;
 | |
| declare const MTS_SUPPORTED: boolean;
 | |
| declare const MODULE_REGISTER_SUPPORTED: boolean;
 | |
| declare const STRIP_TYPES_NODE_VERSION = "22.6";
 | |
| declare const TRANSFORM_TYPES_NODE_VERSION = "22.7";
 | |
| declare const FEATURE_TYPESCRIPT_NODE_VERSION = "22.10";
 | |
| declare const DEFAULT_TYPES_NODE_VERSION = "23.6";
 | |
| declare const STRIP_TYPES_FLAG = "--experimental-strip-types";
 | |
| declare const TRANSFORM_TYPES_FLAG = "--experimental-transform-types";
 | |
| declare const NO_STRIP_TYPES_FLAG = "--no-experimental-strip-types";
 | |
| declare const NODE_OPTIONS: string[];
 | |
| declare const NO_STRIP_TYPES: boolean;
 | |
| declare const DEFAULT_TIMEOUT: number | undefined;
 | |
| declare const DEFAULT_EXEC_ARGV: string[];
 | |
| declare const DEFAULT_TS_RUNNER: TsRunner | undefined;
 | |
| declare const DEFAULT_GLOBAL_SHIMS: boolean;
 | |
| declare const DEFAULT_GLOBAL_SHIMS_PRESET: GlobalShim[];
 | |
| declare const IMPORT_FLAG = "--import";
 | |
| declare const REQUIRE_FLAG = "--require";
 | |
| declare const REQUIRE_ABBR_FLAG = "-r";
 | |
| declare const REQUIRE_FLAGS: Set<string>;
 | |
| declare const LOADER_FLAG = "--loader";
 | |
| declare const EXPERIMENTAL_LOADER_FLAG = "--experimental-loader";
 | |
| declare const LOADER_FLAGS: Set<string>;
 | |
| declare const IMPORT_FLAG_SUPPORTED: boolean;
 | |
| declare const INT32_BYTES = 4;
 | |
| //#endregion
 | |
| //#region src/types.d.ts
 | |
| type AnyFn<R = any, T extends any[] = any[]> = (...args: T) => R;
 | |
| type Syncify<T extends AnyFn> = (...args: Parameters<T>) => Awaited<ReturnType<T>>;
 | |
| type ValueOf<T> = T[keyof T];
 | |
| interface MainToWorkerMessage<T extends unknown[]> {
 | |
|   id: number;
 | |
|   args: T;
 | |
| }
 | |
| interface MainToWorkerCommandMessage {
 | |
|   id: number;
 | |
|   cmd: string;
 | |
| }
 | |
| interface WorkerData {
 | |
|   sharedBufferView: Int32Array;
 | |
|   workerPort: MessagePort;
 | |
|   pnpLoaderPath: string | undefined;
 | |
| }
 | |
| interface DataMessage<T> {
 | |
|   result?: T;
 | |
|   error?: unknown;
 | |
|   properties?: unknown;
 | |
| }
 | |
| interface StdioChunk {
 | |
|   type: 'stderr' | 'stdout';
 | |
|   chunk: Uint8Array | string;
 | |
|   encoding: BufferEncoding;
 | |
| }
 | |
| interface WorkerToMainMessage<T> extends DataMessage<T> {
 | |
|   id: number;
 | |
|   stdio: StdioChunk[];
 | |
| }
 | |
| interface GlobalShim {
 | |
|   moduleName: string;
 | |
|   globalName?: string;
 | |
|   named?: string | null;
 | |
|   conditional?: boolean;
 | |
| }
 | |
| interface PackageJson {
 | |
|   type?: 'commonjs' | 'module';
 | |
| }
 | |
| interface SynckitOptions {
 | |
|   execArgv?: string[];
 | |
|   globalShims?: GlobalShim[] | boolean;
 | |
|   timeout?: number;
 | |
|   transferList?: TransferListItem[];
 | |
|   tsRunner?: TsRunner;
 | |
| }
 | |
| //#endregion
 | |
| //#region src/common.d.ts
 | |
| declare const hasFlag: (flag: string) => boolean;
 | |
| declare const parseVersion: (version: string) => number[];
 | |
| declare const compareVersion: (version1: string, version2: string) => 1 | -1 | 0;
 | |
| declare const NODE_VERSION: string;
 | |
| declare const compareNodeVersion: (version: string) => 1 | -1 | 0;
 | |
| //#endregion
 | |
| //#region src/helpers.d.ts
 | |
| declare const isFile: (path: string) => boolean;
 | |
| declare const dataUrl: (code: string) => url0.URL;
 | |
| declare const hasRequireFlag: (execArgv: string[]) => boolean;
 | |
| declare const hasImportFlag: (execArgv: string[]) => boolean;
 | |
| declare const hasLoaderFlag: (execArgv: string[]) => boolean;
 | |
| declare const setupTsRunner: (workerPath: string, {
 | |
|   execArgv,
 | |
|   tsRunner
 | |
| }?: {
 | |
|   execArgv?: string[];
 | |
|   tsRunner?: TsRunner;
 | |
| }) => {
 | |
|   ext: string;
 | |
|   isTs: boolean;
 | |
|   jsUseEsm: boolean;
 | |
|   tsRunner: TsRunner | undefined;
 | |
|   tsUseEsm: boolean;
 | |
|   workerPath: string;
 | |
|   pnpLoaderPath: string | undefined;
 | |
|   execArgv: string[];
 | |
| };
 | |
| declare const md5Hash: (text: string) => string;
 | |
| declare const encodeImportModule: (moduleNameOrGlobalShim: GlobalShim | string, type?: "import" | "require") => string;
 | |
| declare const generateGlobals: (workerPath: string, globalShims: GlobalShim[], type?: "import" | "require") => string;
 | |
| declare function extractProperties<T extends object>(object: T): T;
 | |
| declare function extractProperties<T>(object?: T): T | undefined;
 | |
| declare function startWorkerThread<T extends AnyFn, R = Awaited<ReturnType<T>>>(workerPath: string, {
 | |
|   timeout,
 | |
|   execArgv,
 | |
|   tsRunner,
 | |
|   transferList,
 | |
|   globalShims
 | |
| }?: SynckitOptions): (...args: Parameters<T>) => R;
 | |
| declare const overrideStdio: (stdio: StdioChunk[]) => void;
 | |
| //#endregion
 | |
| //#region src/index.d.ts
 | |
| declare function createSyncFn<T extends AnyFn>(workerPath: URL | string, timeoutOrOptions?: SynckitOptions | number): Syncify<T>;
 | |
| declare function runAsWorker<T extends AnyFn<Promise<R> | R>, R = ReturnType<T>>(fn: T): void;
 | |
| //#endregion
 | |
| export { AnyFn, DEFAULT_EXEC_ARGV, DEFAULT_GLOBAL_SHIMS, DEFAULT_GLOBAL_SHIMS_PRESET, DEFAULT_TIMEOUT, DEFAULT_TS_RUNNER, DEFAULT_TYPES_NODE_VERSION, DataMessage, EXPERIMENTAL_LOADER_FLAG, FEATURE_TYPESCRIPT_NODE_VERSION, GlobalShim, IMPORT_FLAG, IMPORT_FLAG_SUPPORTED, INT32_BYTES, LOADER_FLAG, LOADER_FLAGS, MODULE_REGISTER_SUPPORTED, MTS_SUPPORTED, MainToWorkerCommandMessage, MainToWorkerMessage, NODE_OPTIONS, NODE_VERSION, NO_STRIP_TYPES, NO_STRIP_TYPES_FLAG, PackageJson, REQUIRE_ABBR_FLAG, REQUIRE_FLAG, REQUIRE_FLAGS, STRIP_TYPES_FLAG, STRIP_TYPES_NODE_VERSION, StdioChunk, Syncify, SynckitOptions, TRANSFORM_TYPES_FLAG, TRANSFORM_TYPES_NODE_VERSION, TS_ESM_PARTIAL_SUPPORTED, TsRunner, ValueOf, WorkerData, WorkerToMainMessage, compareNodeVersion, compareVersion, createSyncFn, dataUrl, encodeImportModule, extractProperties, generateGlobals, hasFlag, hasImportFlag, hasLoaderFlag, hasRequireFlag, isFile, md5Hash, overrideStdio, parseVersion, runAsWorker, setupTsRunner, startWorkerThread }; |