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:
		
							
								
								
									
										101
									
								
								frontend/node_modules/@sinonjs/commons/lib/deprecated.test.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										101
									
								
								frontend/node_modules/@sinonjs/commons/lib/deprecated.test.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,101 @@ | ||||
| /* eslint-disable no-console */ | ||||
| "use strict"; | ||||
|  | ||||
| var assert = require("@sinonjs/referee-sinon").assert; | ||||
| var sinon = require("@sinonjs/referee-sinon").sinon; | ||||
|  | ||||
| var deprecated = require("./deprecated"); | ||||
|  | ||||
| var msg = "test"; | ||||
|  | ||||
| describe("deprecated", function () { | ||||
|     describe("defaultMsg", function () { | ||||
|         it("should return a string", function () { | ||||
|             assert.equals( | ||||
|                 deprecated.defaultMsg("sinon", "someFunc"), | ||||
|                 "sinon.someFunc is deprecated and will be removed from the public API in a future version of sinon." | ||||
|             ); | ||||
|         }); | ||||
|     }); | ||||
|  | ||||
|     describe("printWarning", function () { | ||||
|         beforeEach(function () { | ||||
|             sinon.replace(process, "emitWarning", sinon.fake()); | ||||
|         }); | ||||
|  | ||||
|         afterEach(sinon.restore); | ||||
|  | ||||
|         describe("when `process.emitWarning` is defined", function () { | ||||
|             it("should call process.emitWarning with a msg", function () { | ||||
|                 deprecated.printWarning(msg); | ||||
|                 assert.calledOnceWith(process.emitWarning, msg); | ||||
|             }); | ||||
|         }); | ||||
|  | ||||
|         describe("when `process.emitWarning` is undefined", function () { | ||||
|             beforeEach(function () { | ||||
|                 sinon.replace(console, "info", sinon.fake()); | ||||
|                 sinon.replace(console, "log", sinon.fake()); | ||||
|                 process.emitWarning = undefined; | ||||
|             }); | ||||
|  | ||||
|             afterEach(sinon.restore); | ||||
|  | ||||
|             describe("when `console.info` is defined", function () { | ||||
|                 it("should call `console.info` with a message", function () { | ||||
|                     deprecated.printWarning(msg); | ||||
|                     assert.calledOnceWith(console.info, msg); | ||||
|                 }); | ||||
|             }); | ||||
|  | ||||
|             describe("when `console.info` is undefined", function () { | ||||
|                 it("should call `console.log` with a message", function () { | ||||
|                     console.info = undefined; | ||||
|                     deprecated.printWarning(msg); | ||||
|                     assert.calledOnceWith(console.log, msg); | ||||
|                 }); | ||||
|             }); | ||||
|         }); | ||||
|     }); | ||||
|  | ||||
|     describe("wrap", function () { | ||||
|         // eslint-disable-next-line mocha/no-setup-in-describe | ||||
|         var method = sinon.fake(); | ||||
|         var wrapped; | ||||
|  | ||||
|         beforeEach(function () { | ||||
|             wrapped = deprecated.wrap(method, msg); | ||||
|         }); | ||||
|  | ||||
|         it("should return a wrapper function", function () { | ||||
|             assert.match(wrapped, sinon.match.func); | ||||
|         }); | ||||
|  | ||||
|         it("should assign the prototype of the passed method", function () { | ||||
|             assert.equals(method.prototype, wrapped.prototype); | ||||
|         }); | ||||
|  | ||||
|         context("when the passed method has falsy prototype", function () { | ||||
|             it("should not be assigned to the wrapped method", function () { | ||||
|                 method.prototype = null; | ||||
|                 wrapped = deprecated.wrap(method, msg); | ||||
|                 assert.match(wrapped.prototype, sinon.match.object); | ||||
|             }); | ||||
|         }); | ||||
|  | ||||
|         context("when invoking the wrapped function", function () { | ||||
|             before(function () { | ||||
|                 sinon.replace(deprecated, "printWarning", sinon.fake()); | ||||
|                 wrapped({}); | ||||
|             }); | ||||
|  | ||||
|             it("should call `printWarning` before invoking", function () { | ||||
|                 assert.calledOnceWith(deprecated.printWarning, msg); | ||||
|             }); | ||||
|  | ||||
|             it("should invoke the passed method with the given arguments", function () { | ||||
|                 assert.calledOnceWith(method, {}); | ||||
|             }); | ||||
|         }); | ||||
|     }); | ||||
| }); | ||||
		Reference in New Issue
	
	Block a user
	 anthonyrawlins
					anthonyrawlins