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:
35
frontend/node_modules/@testing-library/user-event/dist/cjs/convenience/click.js
generated
vendored
Normal file
35
frontend/node_modules/@testing-library/user-event/dist/cjs/convenience/click.js
generated
vendored
Normal file
@@ -0,0 +1,35 @@
|
||||
'use strict';
|
||||
|
||||
async function click(element) {
|
||||
const pointerIn = [];
|
||||
if (!this.config.skipHover) {
|
||||
pointerIn.push({
|
||||
target: element
|
||||
});
|
||||
}
|
||||
pointerIn.push({
|
||||
keys: '[MouseLeft]',
|
||||
target: element
|
||||
});
|
||||
return this.pointer(pointerIn);
|
||||
}
|
||||
async function dblClick(element) {
|
||||
return this.pointer([
|
||||
{
|
||||
target: element
|
||||
},
|
||||
'[MouseLeft][MouseLeft]'
|
||||
]);
|
||||
}
|
||||
async function tripleClick(element) {
|
||||
return this.pointer([
|
||||
{
|
||||
target: element
|
||||
},
|
||||
'[MouseLeft][MouseLeft][MouseLeft]'
|
||||
]);
|
||||
}
|
||||
|
||||
exports.click = click;
|
||||
exports.dblClick = dblClick;
|
||||
exports.tripleClick = tripleClick;
|
||||
19
frontend/node_modules/@testing-library/user-event/dist/cjs/convenience/hover.js
generated
vendored
Normal file
19
frontend/node_modules/@testing-library/user-event/dist/cjs/convenience/hover.js
generated
vendored
Normal file
@@ -0,0 +1,19 @@
|
||||
'use strict';
|
||||
|
||||
require('../utils/dataTransfer/Clipboard.js');
|
||||
var cssPointerEvents = require('../utils/pointer/cssPointerEvents.js');
|
||||
|
||||
async function hover(element) {
|
||||
return this.pointer({
|
||||
target: element
|
||||
});
|
||||
}
|
||||
async function unhover(element) {
|
||||
cssPointerEvents.assertPointerEvents(this, this.system.pointer.getMouseTarget(this));
|
||||
return this.pointer({
|
||||
target: element.ownerDocument.body
|
||||
});
|
||||
}
|
||||
|
||||
exports.hover = hover;
|
||||
exports.unhover = unhover;
|
||||
14
frontend/node_modules/@testing-library/user-event/dist/cjs/convenience/index.js
generated
vendored
Normal file
14
frontend/node_modules/@testing-library/user-event/dist/cjs/convenience/index.js
generated
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
'use strict';
|
||||
|
||||
var click = require('./click.js');
|
||||
var hover = require('./hover.js');
|
||||
var tab = require('./tab.js');
|
||||
|
||||
|
||||
|
||||
exports.click = click.click;
|
||||
exports.dblClick = click.dblClick;
|
||||
exports.tripleClick = click.tripleClick;
|
||||
exports.hover = hover.hover;
|
||||
exports.unhover = hover.unhover;
|
||||
exports.tab = tab.tab;
|
||||
7
frontend/node_modules/@testing-library/user-event/dist/cjs/convenience/tab.js
generated
vendored
Normal file
7
frontend/node_modules/@testing-library/user-event/dist/cjs/convenience/tab.js
generated
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
'use strict';
|
||||
|
||||
async function tab({ shift } = {}) {
|
||||
return this.keyboard(shift === true ? '{Shift>}{Tab}{/Shift}' : shift === false ? '[/ShiftLeft][/ShiftRight]{Tab}' : '{Tab}');
|
||||
}
|
||||
|
||||
exports.tab = tab;
|
||||
Reference in New Issue
Block a user