 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>
		
			
				
	
	
		
			96 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			96 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| import * as buildTools from "turbo-gulp";
 | |
| import { LibTarget, registerLibTasks } from "turbo-gulp/targets/lib";
 | |
| import { MochaTarget, registerMochaTasks } from "turbo-gulp/targets/mocha";
 | |
| 
 | |
| import gulp from "gulp";
 | |
| import minimist from "minimist";
 | |
| 
 | |
| interface Options {
 | |
|   devDist?: string;
 | |
| }
 | |
| 
 | |
| const options: Options & minimist.ParsedArgs = minimist(process.argv.slice(2), {
 | |
|   string: ["devDist"],
 | |
|   default: {devDist: undefined},
 | |
|   alias: {devDist: "dev-dist"},
 | |
| });
 | |
| 
 | |
| const project: buildTools.Project = {
 | |
|   root: __dirname,
 | |
|   packageJson: "package.json",
 | |
|   buildDir: "build",
 | |
|   distDir: "dist",
 | |
|   srcDir: "src",
 | |
|   typescript: {}
 | |
| };
 | |
| 
 | |
| const lib: LibTarget = {
 | |
|   project,
 | |
|   name: "lib",
 | |
|   srcDir: "src/lib",
 | |
|   scripts: ["**/*.ts"],
 | |
|   mainModule: "index",
 | |
|   dist: {
 | |
|     packageJsonMap: (old: buildTools.PackageJson): buildTools.PackageJson => {
 | |
|       const version: string = options.devDist !== undefined ? `${old.version}-build.${options.devDist}` : old.version;
 | |
|       return <any> {...old, version, scripts: undefined, private: false};
 | |
|     },
 | |
|     npmPublish: {
 | |
|       tag: options.devDist !== undefined ? "next" : "latest",
 | |
|     },
 | |
|   },
 | |
|   tscOptions: {
 | |
|     declaration: true,
 | |
|     skipLibCheck: true,
 | |
|   },
 | |
|   typedoc: {
 | |
|     dir: "typedoc",
 | |
|     name: "Helpers for V8 coverage files",
 | |
|     deploy: {
 | |
|       repository: "git@github.com:demurgos/v8-coverage.git",
 | |
|       branch: "gh-pages",
 | |
|     },
 | |
|   },
 | |
|   copy: [
 | |
|     {
 | |
|       files: ["**/*.json"],
 | |
|     },
 | |
|   ],
 | |
|   clean: {
 | |
|     dirs: ["build/lib", "dist/lib"],
 | |
|   },
 | |
| };
 | |
| 
 | |
| const test: MochaTarget = {
 | |
|   project,
 | |
|   name: "test",
 | |
|   srcDir: "src",
 | |
|   scripts: ["test/**/*.ts", "lib/**/*.ts", "e2e/*/*.ts"],
 | |
|   customTypingsDir: "src/custom-typings",
 | |
|   tscOptions: {
 | |
|     allowSyntheticDefaultImports: true,
 | |
|     esModuleInterop: true,
 | |
|     skipLibCheck: true,
 | |
|   },
 | |
|   // generateTestMain: true,
 | |
|   copy: [
 | |
|     {
 | |
|       src: "e2e",
 | |
|       // <project-name>/(project|test-resources)/<any>
 | |
|       files: ["*/project/**/*", "*/test-resources/**/*"],
 | |
|       dest: "e2e",
 | |
|     },
 | |
|   ],
 | |
|   clean: {
 | |
|     dirs: ["build/test"],
 | |
|   },
 | |
| };
 | |
| 
 | |
| const libTasks: any = registerLibTasks(gulp, lib);
 | |
| registerMochaTasks(gulp, test);
 | |
| buildTools.projectTasks.registerAll(gulp, project);
 | |
| 
 | |
| gulp.task("all:tsconfig.json", gulp.parallel("lib:tsconfig.json", "test:tsconfig.json"));
 | |
| gulp.task("dist", libTasks.dist);
 | |
| gulp.task("default", libTasks.dist);
 |