 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>
		
			
				
	
	
		
			81 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			81 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| import { createRequire } from "node:module";
 | |
| import { deepCyclicCopy } from "jest-util";
 | |
| 
 | |
| //#region rolldown:runtime
 | |
| var __require = /* @__PURE__ */ createRequire(import.meta.url);
 | |
| 
 | |
| //#endregion
 | |
| //#region src/legacy-code-todo-rewrite/jestAdapter.ts
 | |
| const FRAMEWORK_INITIALIZER = __require.resolve("./jestAdapterInit");
 | |
| const jestAdapter = async (globalConfig, config, environment, runtime, testPath, sendMessageToJest) => {
 | |
| 	const { initialize, runAndTransformResultsToJestFormat } = runtime.requireInternalModule(FRAMEWORK_INITIALIZER);
 | |
| 	const { globals, snapshotState } = await initialize({
 | |
| 		config,
 | |
| 		environment,
 | |
| 		globalConfig,
 | |
| 		localRequire: runtime.requireModule.bind(runtime),
 | |
| 		parentProcess: process,
 | |
| 		runtime,
 | |
| 		sendMessageToJest,
 | |
| 		setGlobalsForRuntime: runtime.setGlobalsForRuntime.bind(runtime),
 | |
| 		testPath
 | |
| 	});
 | |
| 	if (config.fakeTimers.enableGlobally) if (config.fakeTimers.legacyFakeTimers) environment.fakeTimers.useFakeTimers();
 | |
| 	else environment.fakeTimersModern.useFakeTimers();
 | |
| 	globals.beforeEach(() => {
 | |
| 		if (config.resetModules) runtime.resetModules();
 | |
| 		if (config.clearMocks) runtime.clearAllMocks();
 | |
| 		if (config.resetMocks) {
 | |
| 			runtime.resetAllMocks();
 | |
| 			if (config.fakeTimers.enableGlobally && config.fakeTimers.legacyFakeTimers) environment.fakeTimers.useFakeTimers();
 | |
| 		}
 | |
| 		if (config.restoreMocks) runtime.restoreAllMocks();
 | |
| 	});
 | |
| 	const setupAfterEnvStart = Date.now();
 | |
| 	for (const path of config.setupFilesAfterEnv) {
 | |
| 		const esm$1 = runtime.unstable_shouldLoadAsEsm(path);
 | |
| 		if (esm$1) await runtime.unstable_importModule(path);
 | |
| 		else {
 | |
| 			const setupFile = runtime.requireModule(path);
 | |
| 			if (typeof setupFile === "function") await setupFile();
 | |
| 		}
 | |
| 	}
 | |
| 	const setupAfterEnvEnd = Date.now();
 | |
| 	const esm = runtime.unstable_shouldLoadAsEsm(testPath);
 | |
| 	if (esm) await runtime.unstable_importModule(testPath);
 | |
| 	else runtime.requireModule(testPath);
 | |
| 	const setupAfterEnvPerfStats = {
 | |
| 		setupAfterEnvEnd,
 | |
| 		setupAfterEnvStart
 | |
| 	};
 | |
| 	const results = await runAndTransformResultsToJestFormat({
 | |
| 		config,
 | |
| 		globalConfig,
 | |
| 		setupAfterEnvPerfStats,
 | |
| 		testPath
 | |
| 	});
 | |
| 	_addSnapshotData(results, snapshotState);
 | |
| 	return deepCyclicCopy(results, { keepPrototype: false });
 | |
| };
 | |
| const _addSnapshotData = (results, snapshotState) => {
 | |
| 	for (const { fullName, status: status$1, failing } of results.testResults) if (status$1 === "pending" || status$1 === "failed" || failing && status$1 === "passed") snapshotState.markSnapshotsAsCheckedForTest(fullName);
 | |
| 	const uncheckedCount = snapshotState.getUncheckedCount();
 | |
| 	const uncheckedKeys = snapshotState.getUncheckedKeys();
 | |
| 	if (uncheckedCount) snapshotState.removeUncheckedKeys();
 | |
| 	const status = snapshotState.save();
 | |
| 	results.snapshot.fileDeleted = status.deleted;
 | |
| 	results.snapshot.added = snapshotState.added;
 | |
| 	results.snapshot.matched = snapshotState.matched;
 | |
| 	results.snapshot.unmatched = snapshotState.unmatched;
 | |
| 	results.snapshot.updated = snapshotState.updated;
 | |
| 	results.snapshot.unchecked = status.deleted ? 0 : uncheckedCount;
 | |
| 	results.snapshot.uncheckedKeys = [...uncheckedKeys];
 | |
| };
 | |
| var jestAdapter_default = jestAdapter;
 | |
| 
 | |
| //#endregion
 | |
| //#region src/runner.ts
 | |
| var runner_default = jestAdapter_default;
 | |
| 
 | |
| //#endregion
 | |
| export { runner_default as default }; |