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:
		
							
								
								
									
										66
									
								
								frontend/node_modules/parse5/dist/cjs/common/error-codes.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										66
									
								
								frontend/node_modules/parse5/dist/cjs/common/error-codes.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,66 @@ | ||||
| "use strict"; | ||||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||||
| exports.ERR = void 0; | ||||
| var ERR; | ||||
| (function (ERR) { | ||||
|     ERR["controlCharacterInInputStream"] = "control-character-in-input-stream"; | ||||
|     ERR["noncharacterInInputStream"] = "noncharacter-in-input-stream"; | ||||
|     ERR["surrogateInInputStream"] = "surrogate-in-input-stream"; | ||||
|     ERR["nonVoidHtmlElementStartTagWithTrailingSolidus"] = "non-void-html-element-start-tag-with-trailing-solidus"; | ||||
|     ERR["endTagWithAttributes"] = "end-tag-with-attributes"; | ||||
|     ERR["endTagWithTrailingSolidus"] = "end-tag-with-trailing-solidus"; | ||||
|     ERR["unexpectedSolidusInTag"] = "unexpected-solidus-in-tag"; | ||||
|     ERR["unexpectedNullCharacter"] = "unexpected-null-character"; | ||||
|     ERR["unexpectedQuestionMarkInsteadOfTagName"] = "unexpected-question-mark-instead-of-tag-name"; | ||||
|     ERR["invalidFirstCharacterOfTagName"] = "invalid-first-character-of-tag-name"; | ||||
|     ERR["unexpectedEqualsSignBeforeAttributeName"] = "unexpected-equals-sign-before-attribute-name"; | ||||
|     ERR["missingEndTagName"] = "missing-end-tag-name"; | ||||
|     ERR["unexpectedCharacterInAttributeName"] = "unexpected-character-in-attribute-name"; | ||||
|     ERR["unknownNamedCharacterReference"] = "unknown-named-character-reference"; | ||||
|     ERR["missingSemicolonAfterCharacterReference"] = "missing-semicolon-after-character-reference"; | ||||
|     ERR["unexpectedCharacterAfterDoctypeSystemIdentifier"] = "unexpected-character-after-doctype-system-identifier"; | ||||
|     ERR["unexpectedCharacterInUnquotedAttributeValue"] = "unexpected-character-in-unquoted-attribute-value"; | ||||
|     ERR["eofBeforeTagName"] = "eof-before-tag-name"; | ||||
|     ERR["eofInTag"] = "eof-in-tag"; | ||||
|     ERR["missingAttributeValue"] = "missing-attribute-value"; | ||||
|     ERR["missingWhitespaceBetweenAttributes"] = "missing-whitespace-between-attributes"; | ||||
|     ERR["missingWhitespaceAfterDoctypePublicKeyword"] = "missing-whitespace-after-doctype-public-keyword"; | ||||
|     ERR["missingWhitespaceBetweenDoctypePublicAndSystemIdentifiers"] = "missing-whitespace-between-doctype-public-and-system-identifiers"; | ||||
|     ERR["missingWhitespaceAfterDoctypeSystemKeyword"] = "missing-whitespace-after-doctype-system-keyword"; | ||||
|     ERR["missingQuoteBeforeDoctypePublicIdentifier"] = "missing-quote-before-doctype-public-identifier"; | ||||
|     ERR["missingQuoteBeforeDoctypeSystemIdentifier"] = "missing-quote-before-doctype-system-identifier"; | ||||
|     ERR["missingDoctypePublicIdentifier"] = "missing-doctype-public-identifier"; | ||||
|     ERR["missingDoctypeSystemIdentifier"] = "missing-doctype-system-identifier"; | ||||
|     ERR["abruptDoctypePublicIdentifier"] = "abrupt-doctype-public-identifier"; | ||||
|     ERR["abruptDoctypeSystemIdentifier"] = "abrupt-doctype-system-identifier"; | ||||
|     ERR["cdataInHtmlContent"] = "cdata-in-html-content"; | ||||
|     ERR["incorrectlyOpenedComment"] = "incorrectly-opened-comment"; | ||||
|     ERR["eofInScriptHtmlCommentLikeText"] = "eof-in-script-html-comment-like-text"; | ||||
|     ERR["eofInDoctype"] = "eof-in-doctype"; | ||||
|     ERR["nestedComment"] = "nested-comment"; | ||||
|     ERR["abruptClosingOfEmptyComment"] = "abrupt-closing-of-empty-comment"; | ||||
|     ERR["eofInComment"] = "eof-in-comment"; | ||||
|     ERR["incorrectlyClosedComment"] = "incorrectly-closed-comment"; | ||||
|     ERR["eofInCdata"] = "eof-in-cdata"; | ||||
|     ERR["absenceOfDigitsInNumericCharacterReference"] = "absence-of-digits-in-numeric-character-reference"; | ||||
|     ERR["nullCharacterReference"] = "null-character-reference"; | ||||
|     ERR["surrogateCharacterReference"] = "surrogate-character-reference"; | ||||
|     ERR["characterReferenceOutsideUnicodeRange"] = "character-reference-outside-unicode-range"; | ||||
|     ERR["controlCharacterReference"] = "control-character-reference"; | ||||
|     ERR["noncharacterCharacterReference"] = "noncharacter-character-reference"; | ||||
|     ERR["missingWhitespaceBeforeDoctypeName"] = "missing-whitespace-before-doctype-name"; | ||||
|     ERR["missingDoctypeName"] = "missing-doctype-name"; | ||||
|     ERR["invalidCharacterSequenceAfterDoctypeName"] = "invalid-character-sequence-after-doctype-name"; | ||||
|     ERR["duplicateAttribute"] = "duplicate-attribute"; | ||||
|     ERR["nonConformingDoctype"] = "non-conforming-doctype"; | ||||
|     ERR["missingDoctype"] = "missing-doctype"; | ||||
|     ERR["misplacedDoctype"] = "misplaced-doctype"; | ||||
|     ERR["endTagWithoutMatchingOpenElement"] = "end-tag-without-matching-open-element"; | ||||
|     ERR["closingOfElementWithOpenChildElements"] = "closing-of-element-with-open-child-elements"; | ||||
|     ERR["disallowedContentInNoscriptInHead"] = "disallowed-content-in-noscript-in-head"; | ||||
|     ERR["openElementsLeftAfterEof"] = "open-elements-left-after-eof"; | ||||
|     ERR["abandonedHeadElementChild"] = "abandoned-head-element-child"; | ||||
|     ERR["misplacedStartTagForHeadElement"] = "misplaced-start-tag-for-head-element"; | ||||
|     ERR["nestedNoscriptInHead"] = "nested-noscript-in-head"; | ||||
|     ERR["eofInElementThatCanContainOnlyText"] = "eof-in-element-that-can-contain-only-text"; | ||||
| })(ERR || (exports.ERR = ERR = {})); | ||||
		Reference in New Issue
	
	Block a user
	 anthonyrawlins
					anthonyrawlins