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:
13
frontend/node_modules/identity-obj-proxy/src/__tests__/import-es6-export-test.js
generated
vendored
Normal file
13
frontend/node_modules/identity-obj-proxy/src/__tests__/import-es6-export-test.js
generated
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
import idObj from '../test-redirections/idObjES6Export';
|
||||
|
||||
describe('idObj', () => {
|
||||
it('should return the key as a string', () => {
|
||||
expect(idObj.foo).toBe('foo');
|
||||
});
|
||||
it('should support dot notation', () => {
|
||||
expect(idObj.bar).toBe('bar');
|
||||
});
|
||||
it('should support bracket notation', () => {
|
||||
expect(idObj[1]).toBe('1');
|
||||
});
|
||||
});
|
||||
13
frontend/node_modules/identity-obj-proxy/src/__tests__/import-es6-import-export-test.js
generated
vendored
Normal file
13
frontend/node_modules/identity-obj-proxy/src/__tests__/import-es6-import-export-test.js
generated
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
import idObj from '../test-redirections/idObjES6ImportExport';
|
||||
|
||||
describe('idObj', () => {
|
||||
it('should return the key as a string', () => {
|
||||
expect(idObj.foo).toBe('foo');
|
||||
});
|
||||
it('should support dot notation', () => {
|
||||
expect(idObj.bar).toBe('bar');
|
||||
});
|
||||
it('should support bracket notation', () => {
|
||||
expect(idObj[1]).toBe('1');
|
||||
});
|
||||
});
|
||||
13
frontend/node_modules/identity-obj-proxy/src/__tests__/import-es6-import-test.js
generated
vendored
Normal file
13
frontend/node_modules/identity-obj-proxy/src/__tests__/import-es6-import-test.js
generated
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
import idObj from '../test-redirections/idObjES6Import';
|
||||
|
||||
describe('idObj', () => {
|
||||
it('should return the key as a string', () => {
|
||||
expect(idObj.foo).toBe('foo');
|
||||
});
|
||||
it('should support dot notation', () => {
|
||||
expect(idObj.bar).toBe('bar');
|
||||
});
|
||||
it('should support bracket notation', () => {
|
||||
expect(idObj[1]).toBe('1');
|
||||
});
|
||||
});
|
||||
13
frontend/node_modules/identity-obj-proxy/src/__tests__/import-vanilla-test.js
generated
vendored
Normal file
13
frontend/node_modules/identity-obj-proxy/src/__tests__/import-vanilla-test.js
generated
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
import idObj from '..';
|
||||
|
||||
describe('idObj', () => {
|
||||
it('should return the key as a string', () => {
|
||||
expect(idObj.foo).toBe('foo');
|
||||
});
|
||||
it('should support dot notation', () => {
|
||||
expect(idObj.bar).toBe('bar');
|
||||
});
|
||||
it('should support bracket notation', () => {
|
||||
expect(idObj[1]).toBe('1');
|
||||
});
|
||||
});
|
||||
13
frontend/node_modules/identity-obj-proxy/src/__tests__/index-test.js
generated
vendored
Normal file
13
frontend/node_modules/identity-obj-proxy/src/__tests__/index-test.js
generated
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
const idObj = require('..');
|
||||
|
||||
describe('idObj', () => {
|
||||
it('should return the key as a string', () => {
|
||||
expect(idObj.foo).toBe('foo');
|
||||
});
|
||||
it('should support dot notation', () => {
|
||||
expect(idObj.bar).toBe('bar');
|
||||
});
|
||||
it('should support bracket notation', () => {
|
||||
expect(idObj[1]).toBe('1');
|
||||
});
|
||||
});
|
||||
13
frontend/node_modules/identity-obj-proxy/src/__tests__/require-es6-export-test.js
generated
vendored
Normal file
13
frontend/node_modules/identity-obj-proxy/src/__tests__/require-es6-export-test.js
generated
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
const idObj = require('../test-redirections/idObjES6Export').default;
|
||||
|
||||
describe('idObj', () => {
|
||||
it('should return the key as a string', () => {
|
||||
expect(idObj.foo).toBe('foo');
|
||||
});
|
||||
it('should support dot notation', () => {
|
||||
expect(idObj.bar).toBe('bar');
|
||||
});
|
||||
it('should support bracket notation', () => {
|
||||
expect(idObj[1]).toBe('1');
|
||||
});
|
||||
});
|
||||
13
frontend/node_modules/identity-obj-proxy/src/__tests__/require-es6-import-export-test.js
generated
vendored
Normal file
13
frontend/node_modules/identity-obj-proxy/src/__tests__/require-es6-import-export-test.js
generated
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
const idObj = require('../test-redirections/idObjES6ImportExport').default;
|
||||
|
||||
describe('idObj', () => {
|
||||
it('should return the key as a string', () => {
|
||||
expect(idObj.foo).toBe('foo');
|
||||
});
|
||||
it('should support dot notation', () => {
|
||||
expect(idObj.bar).toBe('bar');
|
||||
});
|
||||
it('should support bracket notation', () => {
|
||||
expect(idObj[1]).toBe('1');
|
||||
});
|
||||
});
|
||||
13
frontend/node_modules/identity-obj-proxy/src/__tests__/require-es6-import-test.js
generated
vendored
Normal file
13
frontend/node_modules/identity-obj-proxy/src/__tests__/require-es6-import-test.js
generated
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
const idObj = require('../test-redirections/idObjES6Import');
|
||||
|
||||
describe('idObj', () => {
|
||||
it('should return the key as a string', () => {
|
||||
expect(idObj.foo).toBe('foo');
|
||||
});
|
||||
it('should support dot notation', () => {
|
||||
expect(idObj.bar).toBe('bar');
|
||||
});
|
||||
it('should support bracket notation', () => {
|
||||
expect(idObj[1]).toBe('1');
|
||||
});
|
||||
});
|
||||
13
frontend/node_modules/identity-obj-proxy/src/__tests__/require-vanilla-test.js
generated
vendored
Normal file
13
frontend/node_modules/identity-obj-proxy/src/__tests__/require-vanilla-test.js
generated
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
const idObj = require('..');
|
||||
|
||||
describe('idObj', () => {
|
||||
it('should return the key as a string', () => {
|
||||
expect(idObj.foo).toBe('foo');
|
||||
});
|
||||
it('should support dot notation', () => {
|
||||
expect(idObj.bar).toBe('bar');
|
||||
});
|
||||
it('should support bracket notation', () => {
|
||||
expect(idObj[1]).toBe('1');
|
||||
});
|
||||
});
|
||||
26
frontend/node_modules/identity-obj-proxy/src/index.js
generated
vendored
Normal file
26
frontend/node_modules/identity-obj-proxy/src/index.js
generated
vendored
Normal file
@@ -0,0 +1,26 @@
|
||||
/* eslint-disable no-var, comma-dangle */
|
||||
var Reflect; // eslint-disable-line no-unused-vars
|
||||
var idObj;
|
||||
|
||||
function checkIsNodeV6OrAbove() {
|
||||
if (typeof process === 'undefined') {
|
||||
return false;
|
||||
}
|
||||
|
||||
return parseInt(process.versions.node.split('.')[0], 10) >= 6;
|
||||
}
|
||||
|
||||
if (!checkIsNodeV6OrAbove()) {
|
||||
Reflect = require('harmony-reflect'); // eslint-disable-line global-require
|
||||
}
|
||||
|
||||
idObj = new Proxy({}, {
|
||||
get: function getter(target, key) {
|
||||
if (key === '__esModule') {
|
||||
return false;
|
||||
}
|
||||
return key;
|
||||
}
|
||||
});
|
||||
|
||||
module.exports = idObj;
|
||||
3
frontend/node_modules/identity-obj-proxy/src/test-redirections/idObjES6Export.js
generated
vendored
Normal file
3
frontend/node_modules/identity-obj-proxy/src/test-redirections/idObjES6Export.js
generated
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
const idObj = require('..');
|
||||
|
||||
export default idObj;
|
||||
3
frontend/node_modules/identity-obj-proxy/src/test-redirections/idObjES6Import.js
generated
vendored
Normal file
3
frontend/node_modules/identity-obj-proxy/src/test-redirections/idObjES6Import.js
generated
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
import idObj from '..';
|
||||
|
||||
module.exports = idObj;
|
||||
3
frontend/node_modules/identity-obj-proxy/src/test-redirections/idObjES6ImportExport.js
generated
vendored
Normal file
3
frontend/node_modules/identity-obj-proxy/src/test-redirections/idObjES6ImportExport.js
generated
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
import idObj from '..';
|
||||
|
||||
export default idObj;
|
||||
Reference in New Issue
Block a user