- 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>
55 lines
2.5 KiB
JavaScript
55 lines
2.5 KiB
JavaScript
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.TokenizerMode = exports.Tokenizer = exports.Token = exports.html = exports.foreignContent = exports.ErrorCodes = exports.serializeOuter = exports.serialize = exports.Parser = exports.defaultTreeAdapter = void 0;
|
|
exports.parse = parse;
|
|
exports.parseFragment = parseFragment;
|
|
const index_js_1 = require("./parser/index.js");
|
|
var default_js_1 = require("./tree-adapters/default.js");
|
|
Object.defineProperty(exports, "defaultTreeAdapter", { enumerable: true, get: function () { return default_js_1.defaultTreeAdapter; } });
|
|
var index_js_2 = require("./parser/index.js");
|
|
Object.defineProperty(exports, "Parser", { enumerable: true, get: function () { return index_js_2.Parser; } });
|
|
var index_js_3 = require("./serializer/index.js");
|
|
Object.defineProperty(exports, "serialize", { enumerable: true, get: function () { return index_js_3.serialize; } });
|
|
Object.defineProperty(exports, "serializeOuter", { enumerable: true, get: function () { return index_js_3.serializeOuter; } });
|
|
var error_codes_js_1 = require("./common/error-codes.js");
|
|
Object.defineProperty(exports, "ErrorCodes", { enumerable: true, get: function () { return error_codes_js_1.ERR; } });
|
|
/** @internal */
|
|
exports.foreignContent = require("./common/foreign-content.js");
|
|
exports.html = require("./common/html.js");
|
|
exports.Token = require("./common/token.js");
|
|
/** @internal */
|
|
var index_js_4 = require("./tokenizer/index.js");
|
|
Object.defineProperty(exports, "Tokenizer", { enumerable: true, get: function () { return index_js_4.Tokenizer; } });
|
|
Object.defineProperty(exports, "TokenizerMode", { enumerable: true, get: function () { return index_js_4.TokenizerMode; } });
|
|
// Shorthands
|
|
/**
|
|
* Parses an HTML string.
|
|
*
|
|
* @param html Input HTML string.
|
|
* @param options Parsing options.
|
|
* @returns Document
|
|
*
|
|
* @example
|
|
*
|
|
* ```js
|
|
* const parse5 = require('parse5');
|
|
*
|
|
* const document = parse5.parse('<!DOCTYPE html><html><head></head><body>Hi there!</body></html>');
|
|
*
|
|
* console.log(document.childNodes[1].tagName); //> 'html'
|
|
*```
|
|
*/
|
|
function parse(html, options) {
|
|
return index_js_1.Parser.parse(html, options);
|
|
}
|
|
function parseFragment(fragmentContext, html, options) {
|
|
if (typeof fragmentContext === 'string') {
|
|
options = html;
|
|
html = fragmentContext;
|
|
fragmentContext = null;
|
|
}
|
|
const parser = index_js_1.Parser.getFragmentParser(fragmentContext, options);
|
|
parser.tokenizer.write(html, true);
|
|
return parser.getFragment();
|
|
}
|