 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>
		
			
				
	
	
		
			68 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			68 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| "use strict";
 | |
| 
 | |
| exports.__esModule = true;
 | |
| exports.isInaccessible = isInaccessible;
 | |
| exports.isSubtreeInaccessible = isSubtreeInaccessible;
 | |
| /**
 | |
|  * Partial implementation https://www.w3.org/TR/wai-aria-1.2/#tree_exclusion
 | |
|  * which should only be used for elements with a non-presentational role i.e.
 | |
|  * `role="none"` and `role="presentation"` will not be excluded.
 | |
|  *
 | |
|  * Implements aria-hidden semantics (i.e. parent overrides child)
 | |
|  * Ignores "Child Presentational: True" characteristics
 | |
|  *
 | |
|  * @param element
 | |
|  * @param options
 | |
|  * @returns {boolean} true if excluded, otherwise false
 | |
|  */
 | |
| function isInaccessible(element) {
 | |
|   var _element$ownerDocumen;
 | |
|   var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
 | |
|   var _options$getComputedS = options.getComputedStyle,
 | |
|     getComputedStyle = _options$getComputedS === void 0 ? (_element$ownerDocumen = element.ownerDocument.defaultView) === null || _element$ownerDocumen === void 0 ? void 0 : _element$ownerDocumen.getComputedStyle : _options$getComputedS,
 | |
|     _options$isSubtreeIna = options.isSubtreeInaccessible,
 | |
|     isSubtreeInaccessibleImpl = _options$isSubtreeIna === void 0 ? isSubtreeInaccessible : _options$isSubtreeIna;
 | |
|   if (typeof getComputedStyle !== "function") {
 | |
|     throw new TypeError("Owner document of the element needs to have an associated window.");
 | |
|   }
 | |
|   // since visibility is inherited we can exit early
 | |
|   if (getComputedStyle(element).visibility === "hidden") {
 | |
|     return true;
 | |
|   }
 | |
|   var currentElement = element;
 | |
|   while (currentElement) {
 | |
|     if (isSubtreeInaccessibleImpl(currentElement, {
 | |
|       getComputedStyle: getComputedStyle
 | |
|     })) {
 | |
|       return true;
 | |
|     }
 | |
|     currentElement = currentElement.parentElement;
 | |
|   }
 | |
|   return false;
 | |
| }
 | |
| /**
 | |
|  *
 | |
|  * @param element
 | |
|  * @param options
 | |
|  * @returns {boolean} - `true` if every child of the element is inaccessible
 | |
|  */
 | |
| function isSubtreeInaccessible(element) {
 | |
|   var _element$ownerDocumen2;
 | |
|   var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
 | |
|   var _options$getComputedS2 = options.getComputedStyle,
 | |
|     getComputedStyle = _options$getComputedS2 === void 0 ? (_element$ownerDocumen2 = element.ownerDocument.defaultView) === null || _element$ownerDocumen2 === void 0 ? void 0 : _element$ownerDocumen2.getComputedStyle : _options$getComputedS2;
 | |
|   if (typeof getComputedStyle !== "function") {
 | |
|     throw new TypeError("Owner document of the element needs to have an associated window.");
 | |
|   }
 | |
|   if (element.hidden === true) {
 | |
|     return true;
 | |
|   }
 | |
|   if (element.getAttribute("aria-hidden") === "true") {
 | |
|     return true;
 | |
|   }
 | |
|   if (getComputedStyle(element).display === "none") {
 | |
|     return true;
 | |
|   }
 | |
|   return false;
 | |
| }
 | |
| //# sourceMappingURL=is-inaccessible.js.map
 |