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:
		
							
								
								
									
										89
									
								
								frontend/node_modules/npm-run-path/index.d.ts
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										89
									
								
								frontend/node_modules/npm-run-path/index.d.ts
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,89 @@ | ||||
| declare namespace npmRunPath { | ||||
| 	interface RunPathOptions { | ||||
| 		/** | ||||
| 		Working directory. | ||||
|  | ||||
| 		@default process.cwd() | ||||
| 		*/ | ||||
| 		readonly cwd?: string; | ||||
|  | ||||
| 		/** | ||||
| 		PATH to be appended. Default: [`PATH`](https://github.com/sindresorhus/path-key). | ||||
|  | ||||
| 		Set it to an empty string to exclude the default PATH. | ||||
| 		*/ | ||||
| 		readonly path?: string; | ||||
|  | ||||
| 		/** | ||||
| 		Path to the Node.js executable to use in child processes if that is different from the current one. Its directory is pushed to the front of PATH. | ||||
|  | ||||
| 		This can be either an absolute path or a path relative to the `cwd` option. | ||||
|  | ||||
| 		@default process.execPath | ||||
| 		*/ | ||||
| 		readonly execPath?: string; | ||||
| 	} | ||||
|  | ||||
| 	interface ProcessEnv { | ||||
| 		[key: string]: string | undefined; | ||||
| 	} | ||||
|  | ||||
| 	interface EnvOptions { | ||||
| 		/** | ||||
| 		Working directory. | ||||
|  | ||||
| 		@default process.cwd() | ||||
| 		*/ | ||||
| 		readonly cwd?: string; | ||||
|  | ||||
| 		/** | ||||
| 		Accepts an object of environment variables, like `process.env`, and modifies the PATH using the correct [PATH key](https://github.com/sindresorhus/path-key). Use this if you're modifying the PATH for use in the `child_process` options. | ||||
| 		*/ | ||||
| 		readonly env?: ProcessEnv; | ||||
|  | ||||
| 		/** | ||||
| 		Path to the current Node.js executable. Its directory is pushed to the front of PATH. | ||||
|  | ||||
| 		This can be either an absolute path or a path relative to the `cwd` option. | ||||
|  | ||||
| 		@default process.execPath | ||||
| 		*/ | ||||
| 		readonly execPath?: string; | ||||
| 	} | ||||
| } | ||||
|  | ||||
| declare const npmRunPath: { | ||||
| 	/** | ||||
| 	Get your [PATH](https://en.wikipedia.org/wiki/PATH_(variable)) prepended with locally installed binaries. | ||||
|  | ||||
| 	@returns The augmented path string. | ||||
|  | ||||
| 	@example | ||||
| 	``` | ||||
| 	import * as childProcess from 'child_process'; | ||||
| 	import npmRunPath = require('npm-run-path'); | ||||
|  | ||||
| 	console.log(process.env.PATH); | ||||
| 	//=> '/usr/local/bin' | ||||
|  | ||||
| 	console.log(npmRunPath()); | ||||
| 	//=> '/Users/sindresorhus/dev/foo/node_modules/.bin:/Users/sindresorhus/dev/node_modules/.bin:/Users/sindresorhus/node_modules/.bin:/Users/node_modules/.bin:/node_modules/.bin:/usr/local/bin' | ||||
|  | ||||
| 	// `foo` is a locally installed binary | ||||
| 	childProcess.execFileSync('foo', { | ||||
| 		env: npmRunPath.env() | ||||
| 	}); | ||||
| 	``` | ||||
| 	*/ | ||||
| 	(options?: npmRunPath.RunPathOptions): string; | ||||
|  | ||||
| 	/** | ||||
| 	@returns The augmented [`process.env`](https://nodejs.org/api/process.html#process_process_env) object. | ||||
| 	*/ | ||||
| 	env(options?: npmRunPath.EnvOptions): npmRunPath.ProcessEnv; | ||||
|  | ||||
| 	// TODO: Remove this for the next major release | ||||
| 	default: typeof npmRunPath; | ||||
| }; | ||||
|  | ||||
| export = npmRunPath; | ||||
							
								
								
									
										47
									
								
								frontend/node_modules/npm-run-path/index.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										47
									
								
								frontend/node_modules/npm-run-path/index.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,47 @@ | ||||
| 'use strict'; | ||||
| const path = require('path'); | ||||
| const pathKey = require('path-key'); | ||||
|  | ||||
| const npmRunPath = options => { | ||||
| 	options = { | ||||
| 		cwd: process.cwd(), | ||||
| 		path: process.env[pathKey()], | ||||
| 		execPath: process.execPath, | ||||
| 		...options | ||||
| 	}; | ||||
|  | ||||
| 	let previous; | ||||
| 	let cwdPath = path.resolve(options.cwd); | ||||
| 	const result = []; | ||||
|  | ||||
| 	while (previous !== cwdPath) { | ||||
| 		result.push(path.join(cwdPath, 'node_modules/.bin')); | ||||
| 		previous = cwdPath; | ||||
| 		cwdPath = path.resolve(cwdPath, '..'); | ||||
| 	} | ||||
|  | ||||
| 	// Ensure the running `node` binary is used | ||||
| 	const execPathDir = path.resolve(options.cwd, options.execPath, '..'); | ||||
| 	result.push(execPathDir); | ||||
|  | ||||
| 	return result.concat(options.path).join(path.delimiter); | ||||
| }; | ||||
|  | ||||
| module.exports = npmRunPath; | ||||
| // TODO: Remove this for the next major release | ||||
| module.exports.default = npmRunPath; | ||||
|  | ||||
| module.exports.env = options => { | ||||
| 	options = { | ||||
| 		env: process.env, | ||||
| 		...options | ||||
| 	}; | ||||
|  | ||||
| 	const env = {...options.env}; | ||||
| 	const path = pathKey({env}); | ||||
|  | ||||
| 	options.path = env[path]; | ||||
| 	env[path] = module.exports(options); | ||||
|  | ||||
| 	return env; | ||||
| }; | ||||
							
								
								
									
										9
									
								
								frontend/node_modules/npm-run-path/license
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								frontend/node_modules/npm-run-path/license
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,9 @@ | ||||
| MIT License | ||||
|  | ||||
| Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com) | ||||
|  | ||||
| Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: | ||||
|  | ||||
| The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. | ||||
|  | ||||
| THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | ||||
							
								
								
									
										44
									
								
								frontend/node_modules/npm-run-path/package.json
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										44
									
								
								frontend/node_modules/npm-run-path/package.json
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,44 @@ | ||||
| { | ||||
| 	"name": "npm-run-path", | ||||
| 	"version": "4.0.1", | ||||
| 	"description": "Get your PATH prepended with locally installed binaries", | ||||
| 	"license": "MIT", | ||||
| 	"repository": "sindresorhus/npm-run-path", | ||||
| 	"author": { | ||||
| 		"name": "Sindre Sorhus", | ||||
| 		"email": "sindresorhus@gmail.com", | ||||
| 		"url": "sindresorhus.com" | ||||
| 	}, | ||||
| 	"engines": { | ||||
| 		"node": ">=8" | ||||
| 	}, | ||||
| 	"scripts": { | ||||
| 		"test": "xo && ava && tsd" | ||||
| 	}, | ||||
| 	"files": [ | ||||
| 		"index.js", | ||||
| 		"index.d.ts" | ||||
| 	], | ||||
| 	"keywords": [ | ||||
| 		"npm", | ||||
| 		"run", | ||||
| 		"path", | ||||
| 		"package", | ||||
| 		"bin", | ||||
| 		"binary", | ||||
| 		"binaries", | ||||
| 		"script", | ||||
| 		"cli", | ||||
| 		"command-line", | ||||
| 		"execute", | ||||
| 		"executable" | ||||
| 	], | ||||
| 	"dependencies": { | ||||
| 		"path-key": "^3.0.0" | ||||
| 	}, | ||||
| 	"devDependencies": { | ||||
| 		"ava": "^1.4.1", | ||||
| 		"tsd": "^0.7.2", | ||||
| 		"xo": "^0.24.0" | ||||
| 	} | ||||
| } | ||||
							
								
								
									
										115
									
								
								frontend/node_modules/npm-run-path/readme.md
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										115
									
								
								frontend/node_modules/npm-run-path/readme.md
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,115 @@ | ||||
| # npm-run-path [](https://travis-ci.org/sindresorhus/npm-run-path) | ||||
|  | ||||
| > Get your [PATH](https://en.wikipedia.org/wiki/PATH_(variable)) prepended with locally installed binaries | ||||
|  | ||||
| In [npm run scripts](https://docs.npmjs.com/cli/run-script) you can execute locally installed binaries by name. This enables the same outside npm. | ||||
|  | ||||
|  | ||||
| ## Install | ||||
|  | ||||
| ``` | ||||
| $ npm install npm-run-path | ||||
| ``` | ||||
|  | ||||
|  | ||||
| ## Usage | ||||
|  | ||||
| ```js | ||||
| const childProcess = require('child_process'); | ||||
| const npmRunPath = require('npm-run-path'); | ||||
|  | ||||
| console.log(process.env.PATH); | ||||
| //=> '/usr/local/bin' | ||||
|  | ||||
| console.log(npmRunPath()); | ||||
| //=> '/Users/sindresorhus/dev/foo/node_modules/.bin:/Users/sindresorhus/dev/node_modules/.bin:/Users/sindresorhus/node_modules/.bin:/Users/node_modules/.bin:/node_modules/.bin:/usr/local/bin' | ||||
|  | ||||
| // `foo` is a locally installed binary | ||||
| childProcess.execFileSync('foo', { | ||||
| 	env: npmRunPath.env() | ||||
| }); | ||||
| ``` | ||||
|  | ||||
|  | ||||
| ## API | ||||
|  | ||||
| ### npmRunPath(options?) | ||||
|  | ||||
| Returns the augmented path string. | ||||
|  | ||||
| #### options | ||||
|  | ||||
| Type: `object` | ||||
|  | ||||
| ##### cwd | ||||
|  | ||||
| Type: `string`<br> | ||||
| Default: `process.cwd()` | ||||
|  | ||||
| Working directory. | ||||
|  | ||||
| ##### path | ||||
|  | ||||
| Type: `string`<br> | ||||
| Default: [`PATH`](https://github.com/sindresorhus/path-key) | ||||
|  | ||||
| PATH to be appended.<br> | ||||
| Set it to an empty string to exclude the default PATH. | ||||
|  | ||||
| ##### execPath | ||||
|  | ||||
| Type: `string`<br> | ||||
| Default: `process.execPath` | ||||
|  | ||||
| Path to the current Node.js executable. Its directory is pushed to the front of PATH. | ||||
|  | ||||
| This can be either an absolute path or a path relative to the [`cwd` option](#cwd). | ||||
|  | ||||
| ### npmRunPath.env(options?) | ||||
|  | ||||
| Returns the augmented [`process.env`](https://nodejs.org/api/process.html#process_process_env) object. | ||||
|  | ||||
| #### options | ||||
|  | ||||
| Type: `object` | ||||
|  | ||||
| ##### cwd | ||||
|  | ||||
| Type: `string`<br> | ||||
| Default: `process.cwd()` | ||||
|  | ||||
| Working directory. | ||||
|  | ||||
| ##### env | ||||
|  | ||||
| Type: `Object` | ||||
|  | ||||
| Accepts an object of environment variables, like `process.env`, and modifies the PATH using the correct [PATH key](https://github.com/sindresorhus/path-key). Use this if you're modifying the PATH for use in the `child_process` options. | ||||
|  | ||||
| ##### execPath | ||||
|  | ||||
| Type: `string`<br> | ||||
| Default: `process.execPath` | ||||
|  | ||||
| Path to the Node.js executable to use in child processes if that is different from the current one. Its directory is pushed to the front of PATH. | ||||
|  | ||||
| This can be either an absolute path or a path relative to the [`cwd` option](#cwd). | ||||
|  | ||||
|  | ||||
| ## Related | ||||
|  | ||||
| - [npm-run-path-cli](https://github.com/sindresorhus/npm-run-path-cli) - CLI for this module | ||||
| - [execa](https://github.com/sindresorhus/execa) - Execute a locally installed binary | ||||
|  | ||||
|  | ||||
| --- | ||||
|  | ||||
| <div align="center"> | ||||
| 	<b> | ||||
| 		<a href="https://tidelift.com/subscription/pkg/npm-npm-run-path?utm_source=npm-npm-run-path&utm_medium=referral&utm_campaign=readme">Get professional support for this package with a Tidelift subscription</a> | ||||
| 	</b> | ||||
| 	<br> | ||||
| 	<sub> | ||||
| 		Tidelift helps make open source sustainable for maintainers while giving companies<br>assurances about security, maintenance, and licensing for their dependencies. | ||||
| 	</sub> | ||||
| </div> | ||||
		Reference in New Issue
	
	Block a user
	 anthonyrawlins
					anthonyrawlins