- 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>
31 lines
1.0 KiB
JavaScript
31 lines
1.0 KiB
JavaScript
"use strict";
|
|
|
|
const { parseFragment } = require("../../browser/parser");
|
|
const { HTML_NS } = require("../helpers/namespaces.js");
|
|
const { isShadowRoot } = require("../helpers/shadow-dom.js");
|
|
const NODE_TYPE = require("../node-type.js");
|
|
const { fragmentSerialization } = require("./serialization.js");
|
|
|
|
// https://w3c.github.io/DOM-Parsing/#the-innerhtml-mixin
|
|
exports.implementation = class InnerHTMLImpl {
|
|
// https://w3c.github.io/DOM-Parsing/#dom-innerhtml-innerhtml
|
|
get innerHTML() {
|
|
return fragmentSerialization(this, {
|
|
outer: false,
|
|
requireWellFormed: true,
|
|
globalObject: this._globalObject
|
|
});
|
|
}
|
|
set innerHTML(markup) {
|
|
const contextElement = isShadowRoot(this) ? this.host : this;
|
|
const fragment = parseFragment(markup, contextElement);
|
|
|
|
let contextObject = this;
|
|
if (this.nodeType === NODE_TYPE.ELEMENT_NODE && this.localName === "template" && this.namespaceURI === HTML_NS) {
|
|
contextObject = this._templateContents;
|
|
}
|
|
|
|
contextObject._replaceAll(fragment);
|
|
}
|
|
};
|