 aacb45156b
			
		
	
	aacb45156b
	
	
	
		
			
			- 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>
		
			
				
	
	
		
			616 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			616 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| "use strict";
 | |
| // autogenerated - 2025-05-14
 | |
| // https://www.w3.org/Style/CSS/all-properties.en.html
 | |
| 
 | |
| module.exports = new Set([
 | |
|   "-webkit-line-clamp",
 | |
|   "accent-color",
 | |
|   "align-content",
 | |
|   "align-items",
 | |
|   "align-self",
 | |
|   "alignment-baseline",
 | |
|   "all",
 | |
|   "anchor-name",
 | |
|   "anchor-scope",
 | |
|   "animation",
 | |
|   "animation-composition",
 | |
|   "animation-delay",
 | |
|   "animation-direction",
 | |
|   "animation-duration",
 | |
|   "animation-fill-mode",
 | |
|   "animation-iteration-count",
 | |
|   "animation-name",
 | |
|   "animation-play-state",
 | |
|   "animation-range",
 | |
|   "animation-range-end",
 | |
|   "animation-range-start",
 | |
|   "animation-timeline",
 | |
|   "animation-timing-function",
 | |
|   "appearance",
 | |
|   "aspect-ratio",
 | |
|   "azimuth",
 | |
|   "backface-visibility",
 | |
|   "background",
 | |
|   "background-attachment",
 | |
|   "background-blend-mode",
 | |
|   "background-clip",
 | |
|   "background-color",
 | |
|   "background-image",
 | |
|   "background-origin",
 | |
|   "background-position",
 | |
|   "background-repeat",
 | |
|   "background-size",
 | |
|   "baseline-shift",
 | |
|   "baseline-source",
 | |
|   "block-ellipsis",
 | |
|   "block-size",
 | |
|   "block-step",
 | |
|   "block-step-align",
 | |
|   "block-step-insert",
 | |
|   "block-step-round",
 | |
|   "block-step-size",
 | |
|   "bookmark-label",
 | |
|   "bookmark-level",
 | |
|   "bookmark-state",
 | |
|   "border",
 | |
|   "border-block",
 | |
|   "border-block-color",
 | |
|   "border-block-end",
 | |
|   "border-block-end-color",
 | |
|   "border-block-end-style",
 | |
|   "border-block-end-width",
 | |
|   "border-block-start",
 | |
|   "border-block-start-color",
 | |
|   "border-block-start-style",
 | |
|   "border-block-start-width",
 | |
|   "border-block-style",
 | |
|   "border-block-width",
 | |
|   "border-bottom",
 | |
|   "border-bottom-color",
 | |
|   "border-bottom-left-radius",
 | |
|   "border-bottom-right-radius",
 | |
|   "border-bottom-style",
 | |
|   "border-bottom-width",
 | |
|   "border-boundary",
 | |
|   "border-collapse",
 | |
|   "border-color",
 | |
|   "border-end-end-radius",
 | |
|   "border-end-start-radius",
 | |
|   "border-image",
 | |
|   "border-image-outset",
 | |
|   "border-image-repeat",
 | |
|   "border-image-slice",
 | |
|   "border-image-source",
 | |
|   "border-image-width",
 | |
|   "border-inline",
 | |
|   "border-inline-color",
 | |
|   "border-inline-end",
 | |
|   "border-inline-end-color",
 | |
|   "border-inline-end-style",
 | |
|   "border-inline-end-width",
 | |
|   "border-inline-start",
 | |
|   "border-inline-start-color",
 | |
|   "border-inline-start-style",
 | |
|   "border-inline-start-width",
 | |
|   "border-inline-style",
 | |
|   "border-inline-width",
 | |
|   "border-left",
 | |
|   "border-left-color",
 | |
|   "border-left-style",
 | |
|   "border-left-width",
 | |
|   "border-radius",
 | |
|   "border-right",
 | |
|   "border-right-color",
 | |
|   "border-right-style",
 | |
|   "border-right-width",
 | |
|   "border-spacing",
 | |
|   "border-start-end-radius",
 | |
|   "border-start-start-radius",
 | |
|   "border-style",
 | |
|   "border-top",
 | |
|   "border-top-color",
 | |
|   "border-top-left-radius",
 | |
|   "border-top-right-radius",
 | |
|   "border-top-style",
 | |
|   "border-top-width",
 | |
|   "border-width",
 | |
|   "bottom",
 | |
|   "box-decoration-break",
 | |
|   "box-shadow",
 | |
|   "box-sizing",
 | |
|   "box-snap",
 | |
|   "break-after",
 | |
|   "break-before",
 | |
|   "break-inside",
 | |
|   "caption-side",
 | |
|   "caret",
 | |
|   "caret-color",
 | |
|   "caret-shape",
 | |
|   "clear",
 | |
|   "clip",
 | |
|   "clip-path",
 | |
|   "clip-rule",
 | |
|   "color",
 | |
|   "color-adjust",
 | |
|   "color-interpolation-filters",
 | |
|   "color-scheme",
 | |
|   "column-count",
 | |
|   "column-fill",
 | |
|   "column-gap",
 | |
|   "column-rule",
 | |
|   "column-rule-break",
 | |
|   "column-rule-color",
 | |
|   "column-rule-outset",
 | |
|   "column-rule-style",
 | |
|   "column-rule-width",
 | |
|   "column-span",
 | |
|   "column-width",
 | |
|   "columns",
 | |
|   "contain",
 | |
|   "contain-intrinsic-block-size",
 | |
|   "contain-intrinsic-height",
 | |
|   "contain-intrinsic-inline-size",
 | |
|   "contain-intrinsic-size",
 | |
|   "contain-intrinsic-width",
 | |
|   "container",
 | |
|   "container-name",
 | |
|   "container-type",
 | |
|   "content",
 | |
|   "content-visibility",
 | |
|   "continue",
 | |
|   "counter-increment",
 | |
|   "counter-reset",
 | |
|   "counter-set",
 | |
|   "cue",
 | |
|   "cue-after",
 | |
|   "cue-before",
 | |
|   "cursor",
 | |
|   "direction",
 | |
|   "display",
 | |
|   "dominant-baseline",
 | |
|   "dynamic-range-limit",
 | |
|   "elevation",
 | |
|   "empty-cells",
 | |
|   "fill",
 | |
|   "fill-break",
 | |
|   "fill-color",
 | |
|   "fill-image",
 | |
|   "fill-opacity",
 | |
|   "fill-origin",
 | |
|   "fill-position",
 | |
|   "fill-repeat",
 | |
|   "fill-rule",
 | |
|   "fill-size",
 | |
|   "filter",
 | |
|   "flex",
 | |
|   "flex-basis",
 | |
|   "flex-direction",
 | |
|   "flex-flow",
 | |
|   "flex-grow",
 | |
|   "flex-shrink",
 | |
|   "flex-wrap",
 | |
|   "float",
 | |
|   "float-defer",
 | |
|   "float-offset",
 | |
|   "float-reference",
 | |
|   "flood-color",
 | |
|   "flood-opacity",
 | |
|   "flow-from",
 | |
|   "flow-into",
 | |
|   "font",
 | |
|   "font-family",
 | |
|   "font-feature-settings",
 | |
|   "font-kerning",
 | |
|   "font-language-override",
 | |
|   "font-optical-sizing",
 | |
|   "font-palette",
 | |
|   "font-size",
 | |
|   "font-size-adjust",
 | |
|   "font-stretch",
 | |
|   "font-style",
 | |
|   "font-synthesis",
 | |
|   "font-synthesis-position",
 | |
|   "font-synthesis-small-caps",
 | |
|   "font-synthesis-style",
 | |
|   "font-synthesis-weight",
 | |
|   "font-variant",
 | |
|   "font-variant-alternates",
 | |
|   "font-variant-caps",
 | |
|   "font-variant-east-asian",
 | |
|   "font-variant-emoji",
 | |
|   "font-variant-ligatures",
 | |
|   "font-variant-numeric",
 | |
|   "font-variant-position",
 | |
|   "font-variation-settings",
 | |
|   "font-weight",
 | |
|   "font-width",
 | |
|   "footnote-display",
 | |
|   "footnote-policy",
 | |
|   "forced-color-adjust",
 | |
|   "gap",
 | |
|   "glyph-orientation-vertical",
 | |
|   "grid",
 | |
|   "grid-area",
 | |
|   "grid-auto-columns",
 | |
|   "grid-auto-flow",
 | |
|   "grid-auto-rows",
 | |
|   "grid-column",
 | |
|   "grid-column-end",
 | |
|   "grid-column-start",
 | |
|   "grid-row",
 | |
|   "grid-row-end",
 | |
|   "grid-row-start",
 | |
|   "grid-template",
 | |
|   "grid-template-areas",
 | |
|   "grid-template-columns",
 | |
|   "grid-template-rows",
 | |
|   "hanging-punctuation",
 | |
|   "height",
 | |
|   "hyphenate-character",
 | |
|   "hyphenate-limit-chars",
 | |
|   "hyphenate-limit-last",
 | |
|   "hyphenate-limit-lines",
 | |
|   "hyphenate-limit-zone",
 | |
|   "hyphens",
 | |
|   "image-orientation",
 | |
|   "image-rendering",
 | |
|   "image-resolution",
 | |
|   "initial-letter",
 | |
|   "initial-letter-align",
 | |
|   "initial-letter-wrap",
 | |
|   "inline-size",
 | |
|   "inline-sizing",
 | |
|   "inset",
 | |
|   "inset-block",
 | |
|   "inset-block-end",
 | |
|   "inset-block-start",
 | |
|   "inset-inline",
 | |
|   "inset-inline-end",
 | |
|   "inset-inline-start",
 | |
|   "interpolate-size",
 | |
|   "isolation",
 | |
|   "item-cross",
 | |
|   "item-direction",
 | |
|   "item-flow",
 | |
|   "item-pack",
 | |
|   "item-slack",
 | |
|   "item-track",
 | |
|   "item-wrap",
 | |
|   "justify-content",
 | |
|   "justify-items",
 | |
|   "justify-self",
 | |
|   "left",
 | |
|   "letter-spacing",
 | |
|   "lighting-color",
 | |
|   "line-break",
 | |
|   "line-clamp",
 | |
|   "line-fit-edge",
 | |
|   "line-grid",
 | |
|   "line-height",
 | |
|   "line-height-step",
 | |
|   "line-padding",
 | |
|   "line-snap",
 | |
|   "list-style",
 | |
|   "list-style-image",
 | |
|   "list-style-position",
 | |
|   "list-style-type",
 | |
|   "margin",
 | |
|   "margin-block",
 | |
|   "margin-block-end",
 | |
|   "margin-block-start",
 | |
|   "margin-bottom",
 | |
|   "margin-break",
 | |
|   "margin-inline",
 | |
|   "margin-inline-end",
 | |
|   "margin-inline-start",
 | |
|   "margin-left",
 | |
|   "margin-right",
 | |
|   "margin-top",
 | |
|   "margin-trim",
 | |
|   "marker",
 | |
|   "marker-end",
 | |
|   "marker-knockout-left",
 | |
|   "marker-knockout-right",
 | |
|   "marker-mid",
 | |
|   "marker-pattern",
 | |
|   "marker-segment",
 | |
|   "marker-side",
 | |
|   "marker-start",
 | |
|   "mask",
 | |
|   "mask-border",
 | |
|   "mask-border-mode",
 | |
|   "mask-border-outset",
 | |
|   "mask-border-repeat",
 | |
|   "mask-border-slice",
 | |
|   "mask-border-source",
 | |
|   "mask-border-width",
 | |
|   "mask-clip",
 | |
|   "mask-composite",
 | |
|   "mask-image",
 | |
|   "mask-mode",
 | |
|   "mask-origin",
 | |
|   "mask-position",
 | |
|   "mask-repeat",
 | |
|   "mask-size",
 | |
|   "mask-type",
 | |
|   "max-block-size",
 | |
|   "max-height",
 | |
|   "max-inline-size",
 | |
|   "max-lines",
 | |
|   "max-width",
 | |
|   "min-block-size",
 | |
|   "min-height",
 | |
|   "min-inline-size",
 | |
|   "min-intrinsic-sizing",
 | |
|   "min-width",
 | |
|   "mix-blend-mode",
 | |
|   "nav-down",
 | |
|   "nav-left",
 | |
|   "nav-right",
 | |
|   "nav-up",
 | |
|   "object-fit",
 | |
|   "object-position",
 | |
|   "offset",
 | |
|   "offset-anchor",
 | |
|   "offset-distance",
 | |
|   "offset-path",
 | |
|   "offset-position",
 | |
|   "offset-rotate",
 | |
|   "opacity",
 | |
|   "order",
 | |
|   "orphans",
 | |
|   "outline",
 | |
|   "outline-color",
 | |
|   "outline-offset",
 | |
|   "outline-style",
 | |
|   "outline-width",
 | |
|   "overflow",
 | |
|   "overflow-anchor",
 | |
|   "overflow-block",
 | |
|   "overflow-clip-margin",
 | |
|   "overflow-clip-margin-block",
 | |
|   "overflow-clip-margin-block-end",
 | |
|   "overflow-clip-margin-block-start",
 | |
|   "overflow-clip-margin-bottom",
 | |
|   "overflow-clip-margin-inline",
 | |
|   "overflow-clip-margin-inline-end",
 | |
|   "overflow-clip-margin-inline-start",
 | |
|   "overflow-clip-margin-left",
 | |
|   "overflow-clip-margin-right",
 | |
|   "overflow-clip-margin-top",
 | |
|   "overflow-inline",
 | |
|   "overflow-wrap",
 | |
|   "overflow-x",
 | |
|   "overflow-y",
 | |
|   "overscroll-behavior",
 | |
|   "overscroll-behavior-block",
 | |
|   "overscroll-behavior-inline",
 | |
|   "overscroll-behavior-x",
 | |
|   "overscroll-behavior-y",
 | |
|   "padding",
 | |
|   "padding-block",
 | |
|   "padding-block-end",
 | |
|   "padding-block-start",
 | |
|   "padding-bottom",
 | |
|   "padding-inline",
 | |
|   "padding-inline-end",
 | |
|   "padding-inline-start",
 | |
|   "padding-left",
 | |
|   "padding-right",
 | |
|   "padding-top",
 | |
|   "page",
 | |
|   "page-break-after",
 | |
|   "page-break-before",
 | |
|   "page-break-inside",
 | |
|   "pause",
 | |
|   "pause-after",
 | |
|   "pause-before",
 | |
|   "perspective",
 | |
|   "perspective-origin",
 | |
|   "pitch",
 | |
|   "pitch-range",
 | |
|   "place-content",
 | |
|   "place-items",
 | |
|   "place-self",
 | |
|   "play-during",
 | |
|   "position",
 | |
|   "position-anchor",
 | |
|   "position-area",
 | |
|   "position-try",
 | |
|   "position-try-fallbacks",
 | |
|   "position-try-order",
 | |
|   "position-visibility",
 | |
|   "print-color-adjust",
 | |
|   "quotes",
 | |
|   "reading-flow",
 | |
|   "region-fragment",
 | |
|   "resize",
 | |
|   "rest",
 | |
|   "rest-after",
 | |
|   "rest-before",
 | |
|   "richness",
 | |
|   "right",
 | |
|   "rotate",
 | |
|   "row-gap",
 | |
|   "row-rule",
 | |
|   "row-rule-break",
 | |
|   "row-rule-color",
 | |
|   "row-rule-outset",
 | |
|   "row-rule-style",
 | |
|   "row-rule-width",
 | |
|   "ruby-align",
 | |
|   "ruby-merge",
 | |
|   "ruby-overhang",
 | |
|   "ruby-position",
 | |
|   "rule",
 | |
|   "rule-break",
 | |
|   "rule-color",
 | |
|   "rule-outset",
 | |
|   "rule-paint-order",
 | |
|   "rule-style",
 | |
|   "rule-width",
 | |
|   "running",
 | |
|   "scale",
 | |
|   "scroll-behavior",
 | |
|   "scroll-margin",
 | |
|   "scroll-margin-block",
 | |
|   "scroll-margin-block-end",
 | |
|   "scroll-margin-block-start",
 | |
|   "scroll-margin-bottom",
 | |
|   "scroll-margin-inline",
 | |
|   "scroll-margin-inline-end",
 | |
|   "scroll-margin-inline-start",
 | |
|   "scroll-margin-left",
 | |
|   "scroll-margin-right",
 | |
|   "scroll-margin-top",
 | |
|   "scroll-marker-group",
 | |
|   "scroll-padding",
 | |
|   "scroll-padding-block",
 | |
|   "scroll-padding-block-end",
 | |
|   "scroll-padding-block-start",
 | |
|   "scroll-padding-bottom",
 | |
|   "scroll-padding-inline",
 | |
|   "scroll-padding-inline-end",
 | |
|   "scroll-padding-inline-start",
 | |
|   "scroll-padding-left",
 | |
|   "scroll-padding-right",
 | |
|   "scroll-padding-top",
 | |
|   "scroll-snap-align",
 | |
|   "scroll-snap-stop",
 | |
|   "scroll-snap-type",
 | |
|   "scroll-start-target",
 | |
|   "scroll-timeline",
 | |
|   "scroll-timeline-axis",
 | |
|   "scroll-timeline-name",
 | |
|   "scrollbar-color",
 | |
|   "scrollbar-gutter",
 | |
|   "scrollbar-width",
 | |
|   "shape-image-threshold",
 | |
|   "shape-inside",
 | |
|   "shape-margin",
 | |
|   "shape-outside",
 | |
|   "slider-orientation",
 | |
|   "spatial-navigation-action",
 | |
|   "spatial-navigation-contain",
 | |
|   "spatial-navigation-function",
 | |
|   "speak",
 | |
|   "speak-as",
 | |
|   "speak-header",
 | |
|   "speak-numeral",
 | |
|   "speak-punctuation",
 | |
|   "speech-rate",
 | |
|   "stress",
 | |
|   "string-set",
 | |
|   "stroke",
 | |
|   "stroke-align",
 | |
|   "stroke-alignment",
 | |
|   "stroke-break",
 | |
|   "stroke-color",
 | |
|   "stroke-dash-corner",
 | |
|   "stroke-dash-justify",
 | |
|   "stroke-dashadjust",
 | |
|   "stroke-dasharray",
 | |
|   "stroke-dashcorner",
 | |
|   "stroke-dashoffset",
 | |
|   "stroke-image",
 | |
|   "stroke-linecap",
 | |
|   "stroke-linejoin",
 | |
|   "stroke-miterlimit",
 | |
|   "stroke-opacity",
 | |
|   "stroke-origin",
 | |
|   "stroke-position",
 | |
|   "stroke-repeat",
 | |
|   "stroke-size",
 | |
|   "stroke-width",
 | |
|   "tab-size",
 | |
|   "table-layout",
 | |
|   "text-align",
 | |
|   "text-align-all",
 | |
|   "text-align-last",
 | |
|   "text-autospace",
 | |
|   "text-box",
 | |
|   "text-box-edge",
 | |
|   "text-box-trim",
 | |
|   "text-combine-upright",
 | |
|   "text-decoration",
 | |
|   "text-decoration-color",
 | |
|   "text-decoration-line",
 | |
|   "text-decoration-skip",
 | |
|   "text-decoration-skip-box",
 | |
|   "text-decoration-skip-ink",
 | |
|   "text-decoration-skip-inset",
 | |
|   "text-decoration-skip-self",
 | |
|   "text-decoration-skip-spaces",
 | |
|   "text-decoration-style",
 | |
|   "text-decoration-thickness",
 | |
|   "text-emphasis",
 | |
|   "text-emphasis-color",
 | |
|   "text-emphasis-position",
 | |
|   "text-emphasis-skip",
 | |
|   "text-emphasis-style",
 | |
|   "text-group-align",
 | |
|   "text-indent",
 | |
|   "text-justify",
 | |
|   "text-orientation",
 | |
|   "text-overflow",
 | |
|   "text-shadow",
 | |
|   "text-spacing",
 | |
|   "text-spacing-trim",
 | |
|   "text-transform",
 | |
|   "text-underline-offset",
 | |
|   "text-underline-position",
 | |
|   "text-wrap",
 | |
|   "text-wrap-mode",
 | |
|   "text-wrap-style",
 | |
|   "timeline-scope",
 | |
|   "top",
 | |
|   "transform",
 | |
|   "transform-box",
 | |
|   "transform-origin",
 | |
|   "transform-style",
 | |
|   "transition",
 | |
|   "transition-behavior",
 | |
|   "transition-delay",
 | |
|   "transition-duration",
 | |
|   "transition-property",
 | |
|   "transition-timing-function",
 | |
|   "translate",
 | |
|   "unicode-bidi",
 | |
|   "user-select",
 | |
|   "vertical-align",
 | |
|   "view-timeline",
 | |
|   "view-timeline-axis",
 | |
|   "view-timeline-inset",
 | |
|   "view-timeline-name",
 | |
|   "view-transition-class",
 | |
|   "view-transition-group",
 | |
|   "view-transition-name",
 | |
|   "visibility",
 | |
|   "voice-balance",
 | |
|   "voice-duration",
 | |
|   "voice-family",
 | |
|   "voice-pitch",
 | |
|   "voice-range",
 | |
|   "voice-rate",
 | |
|   "voice-stress",
 | |
|   "voice-volume",
 | |
|   "volume",
 | |
|   "white-space",
 | |
|   "white-space-collapse",
 | |
|   "white-space-trim",
 | |
|   "widows",
 | |
|   "width",
 | |
|   "will-change",
 | |
|   "word-break",
 | |
|   "word-space-transform",
 | |
|   "word-spacing",
 | |
|   "word-wrap",
 | |
|   "wrap-after",
 | |
|   "wrap-before",
 | |
|   "wrap-flow",
 | |
|   "wrap-inside",
 | |
|   "wrap-through",
 | |
|   "writing-mode",
 | |
|   "z-index"
 | |
| ]);
 |