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:
125
frontend/node_modules/@testing-library/user-event/dist/cjs/setup/setup.js
generated
vendored
Normal file
125
frontend/node_modules/@testing-library/user-event/dist/cjs/setup/setup.js
generated
vendored
Normal file
@@ -0,0 +1,125 @@
|
||||
'use strict';
|
||||
|
||||
var patchFocus = require('../document/patchFocus.js');
|
||||
var prepareDocument = require('../document/prepareDocument.js');
|
||||
var dispatchEvent = require('../event/dispatchEvent.js');
|
||||
var Clipboard = require('../utils/dataTransfer/Clipboard.js');
|
||||
var getWindow = require('../utils/misc/getWindow.js');
|
||||
var getDocumentFromNode = require('../utils/misc/getDocumentFromNode.js');
|
||||
var level = require('../utils/misc/level.js');
|
||||
var wait = require('../utils/misc/wait.js');
|
||||
var options = require('../options.js');
|
||||
require('@testing-library/dom');
|
||||
var keyMap = require('../keyboard/keyMap.js');
|
||||
var keyMap$1 = require('../pointer/keyMap.js');
|
||||
var index = require('../system/index.js');
|
||||
var api = require('./api.js');
|
||||
var wrapAsync = require('./wrapAsync.js');
|
||||
|
||||
/**
|
||||
* Default options applied when API is called per `userEvent.anyApi()`
|
||||
*/ const defaultOptionsDirect = {
|
||||
applyAccept: true,
|
||||
autoModify: true,
|
||||
delay: 0,
|
||||
document: globalThis.document,
|
||||
keyboardMap: keyMap.defaultKeyMap,
|
||||
pointerMap: keyMap$1.defaultKeyMap,
|
||||
pointerEventsCheck: options.PointerEventsCheckLevel.EachApiCall,
|
||||
skipAutoClose: false,
|
||||
skipClick: false,
|
||||
skipHover: false,
|
||||
writeToClipboard: false,
|
||||
advanceTimers: ()=>Promise.resolve()
|
||||
};
|
||||
/**
|
||||
* Default options applied when API is called per `userEvent().anyApi()`
|
||||
*/ const defaultOptionsSetup = {
|
||||
...defaultOptionsDirect,
|
||||
writeToClipboard: true
|
||||
};
|
||||
function createConfig(options = {}, defaults = defaultOptionsSetup, node) {
|
||||
const document = getDocument(options, node, defaults);
|
||||
return {
|
||||
...defaults,
|
||||
...options,
|
||||
document
|
||||
};
|
||||
}
|
||||
/**
|
||||
* Start a "session" with userEvent.
|
||||
* All APIs returned by this function share an input device state and a default configuration.
|
||||
*/ function setupMain(options = {}) {
|
||||
const config = createConfig(options);
|
||||
prepareDocument.prepareDocument(config.document);
|
||||
patchFocus.patchFocus(getWindow.getWindow(config.document).HTMLElement);
|
||||
var _config_document_defaultView;
|
||||
const view = (_config_document_defaultView = config.document.defaultView) !== null && _config_document_defaultView !== undefined ? _config_document_defaultView : /* istanbul ignore next */ globalThis.window;
|
||||
Clipboard.attachClipboardStubToView(view);
|
||||
return createInstance(config).api;
|
||||
}
|
||||
/**
|
||||
* Setup in direct call per `userEvent.anyApi()`
|
||||
*/ function setupDirect({ keyboardState, pointerState, ...options } = {}, node) {
|
||||
const config = createConfig(options, defaultOptionsDirect, node);
|
||||
prepareDocument.prepareDocument(config.document);
|
||||
patchFocus.patchFocus(getWindow.getWindow(config.document).HTMLElement);
|
||||
var _ref;
|
||||
const system = (_ref = pointerState !== null && pointerState !== undefined ? pointerState : keyboardState) !== null && _ref !== undefined ? _ref : new index.System();
|
||||
return {
|
||||
api: createInstance(config, system).api,
|
||||
system
|
||||
};
|
||||
}
|
||||
/**
|
||||
* Create a set of callbacks with different default settings but the same state.
|
||||
*/ function setupSub(options) {
|
||||
return createInstance({
|
||||
...this.config,
|
||||
...options
|
||||
}, this.system).api;
|
||||
}
|
||||
function wrapAndBindImpl(instance, impl) {
|
||||
function method(...args) {
|
||||
level.setLevelRef(instance, level.ApiLevel.Call);
|
||||
return wrapAsync.wrapAsync(()=>impl.apply(instance, args).then(async (ret)=>{
|
||||
await wait.wait(instance.config);
|
||||
return ret;
|
||||
}));
|
||||
}
|
||||
Object.defineProperty(method, 'name', {
|
||||
get: ()=>impl.name
|
||||
});
|
||||
return method;
|
||||
}
|
||||
function createInstance(config, system = new index.System()) {
|
||||
const instance = {};
|
||||
Object.assign(instance, {
|
||||
config,
|
||||
dispatchEvent: dispatchEvent.dispatchEvent.bind(instance),
|
||||
dispatchUIEvent: dispatchEvent.dispatchUIEvent.bind(instance),
|
||||
system,
|
||||
levelRefs: {},
|
||||
...api.userEventApi
|
||||
});
|
||||
return {
|
||||
instance,
|
||||
api: {
|
||||
...Object.fromEntries(Object.entries(api.userEventApi).map(([name, api])=>[
|
||||
name,
|
||||
wrapAndBindImpl(instance, api)
|
||||
])),
|
||||
setup: setupSub.bind(instance)
|
||||
}
|
||||
};
|
||||
}
|
||||
function getDocument(options, node, defaults) {
|
||||
var _options_document, _ref;
|
||||
return (_ref = (_options_document = options.document) !== null && _options_document !== undefined ? _options_document : node && getDocumentFromNode.getDocumentFromNode(node)) !== null && _ref !== undefined ? _ref : defaults.document;
|
||||
}
|
||||
|
||||
exports.createConfig = createConfig;
|
||||
exports.createInstance = createInstance;
|
||||
exports.setupDirect = setupDirect;
|
||||
exports.setupMain = setupMain;
|
||||
exports.setupSub = setupSub;
|
||||
Reference in New Issue
Block a user