Set up comprehensive frontend testing infrastructure
- 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>
This commit is contained in:
		
							
								
								
									
										113
									
								
								frontend/node_modules/@jest/fake-timers/build/index.d.ts
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										113
									
								
								frontend/node_modules/@jest/fake-timers/build/index.d.ts
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,113 @@ | ||||
| /** | ||||
|  * Copyright (c) Meta Platforms, Inc. and affiliates. | ||||
|  * | ||||
|  * This source code is licensed under the MIT license found in the | ||||
|  * LICENSE file in the root directory of this source tree. | ||||
|  */ | ||||
|  | ||||
| import {Config} from '@jest/types'; | ||||
| import {StackTraceConfig} from 'jest-message-util'; | ||||
| import {ModuleMocker} from 'jest-mock'; | ||||
|  | ||||
| declare type Callback = (...args: Array<unknown>) => void; | ||||
|  | ||||
| export declare class LegacyFakeTimers<TimerRef = unknown> { | ||||
|   #private; | ||||
|   private _cancelledTicks; | ||||
|   private readonly _config; | ||||
|   private _disposed; | ||||
|   private _fakeTimerAPIs; | ||||
|   private _fakingTime; | ||||
|   private readonly _global; | ||||
|   private _immediates; | ||||
|   private readonly _maxLoops; | ||||
|   private readonly _moduleMocker; | ||||
|   private _now; | ||||
|   private _ticks; | ||||
|   private readonly _timerAPIs; | ||||
|   private _timers; | ||||
|   private _uuidCounter; | ||||
|   private readonly _timerConfig; | ||||
|   constructor({ | ||||
|     global, | ||||
|     moduleMocker, | ||||
|     timerConfig, | ||||
|     config, | ||||
|     maxLoops, | ||||
|   }: { | ||||
|     global: typeof globalThis; | ||||
|     moduleMocker: ModuleMocker; | ||||
|     timerConfig: TimerConfig<TimerRef>; | ||||
|     config: StackTraceConfig; | ||||
|     maxLoops?: number; | ||||
|   }); | ||||
|   clearAllTimers(): void; | ||||
|   dispose(): void; | ||||
|   reset(): void; | ||||
|   now(): number; | ||||
|   runAllTicks(): void; | ||||
|   runAllImmediates(): void; | ||||
|   private _runImmediate; | ||||
|   runAllTimers(): void; | ||||
|   runOnlyPendingTimers(): void; | ||||
|   advanceTimersToNextTimer(steps?: number): void; | ||||
|   advanceTimersByTime(msToRun: number): void; | ||||
|   runWithRealTimers(cb: Callback): void; | ||||
|   useRealTimers(): void; | ||||
|   useFakeTimers(): void; | ||||
|   getTimerCount(): number; | ||||
|   private _checkFakeTimers; | ||||
|   private _createMocks; | ||||
|   private _fakeClearTimer; | ||||
|   private _fakeClearImmediate; | ||||
|   private _fakeNextTick; | ||||
|   private _fakeRequestAnimationFrame; | ||||
|   private _fakeSetImmediate; | ||||
|   private _fakeSetInterval; | ||||
|   private _fakeSetTimeout; | ||||
|   private _getNextTimerHandleAndExpiry; | ||||
|   private _runTimerHandle; | ||||
| } | ||||
|  | ||||
| export declare class ModernFakeTimers { | ||||
|   private _clock; | ||||
|   private readonly _config; | ||||
|   private _fakingTime; | ||||
|   private readonly _global; | ||||
|   private readonly _fakeTimers; | ||||
|   constructor({ | ||||
|     global, | ||||
|     config, | ||||
|   }: { | ||||
|     global: typeof globalThis; | ||||
|     config: Config.ProjectConfig; | ||||
|   }); | ||||
|   clearAllTimers(): void; | ||||
|   dispose(): void; | ||||
|   runAllTimers(): void; | ||||
|   runAllTimersAsync(): Promise<void>; | ||||
|   runOnlyPendingTimers(): void; | ||||
|   runOnlyPendingTimersAsync(): Promise<void>; | ||||
|   advanceTimersToNextTimer(steps?: number): void; | ||||
|   advanceTimersToNextTimerAsync(steps?: number): Promise<void>; | ||||
|   advanceTimersByTime(msToRun: number): void; | ||||
|   advanceTimersByTimeAsync(msToRun: number): Promise<void>; | ||||
|   advanceTimersToNextFrame(): void; | ||||
|   runAllTicks(): void; | ||||
|   useRealTimers(): void; | ||||
|   useFakeTimers(fakeTimersConfig?: Config.FakeTimersConfig): void; | ||||
|   reset(): void; | ||||
|   setSystemTime(now?: number | Date): void; | ||||
|   getRealSystemTime(): number; | ||||
|   now(): number; | ||||
|   getTimerCount(): number; | ||||
|   private _checkFakeTimers; | ||||
|   private _toSinonFakeTimersConfig; | ||||
| } | ||||
|  | ||||
| declare type TimerConfig<Ref> = { | ||||
|   idToRef: (id: number) => Ref; | ||||
|   refToId: (ref: Ref) => number | void; | ||||
| }; | ||||
|  | ||||
| export {}; | ||||
		Reference in New Issue
	
	Block a user
	 anthonyrawlins
					anthonyrawlins