@supernal/interface 1.0.8 → 1.0.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/src/adapters/copilotkit/CopilotKitAdapter.js +3 -5
- package/dist/cjs/src/adapters/copilotkit/CopilotKitAdapter.js.map +1 -1
- package/dist/cjs/src/adapters/index.js +3 -4
- package/dist/cjs/src/adapters/index.js.map +1 -1
- package/dist/cjs/src/ai/AIInterface.js +111 -61
- package/dist/cjs/src/ai/AIInterface.js.map +1 -1
- package/dist/cjs/src/ai/ToolExecutor.js +36 -1
- package/dist/cjs/src/ai/ToolExecutor.js.map +1 -1
- package/dist/cjs/src/ai/ToolMatcher.js +6 -0
- package/dist/cjs/src/ai/ToolMatcher.js.map +1 -1
- package/dist/cjs/src/background/architecture/ArchitectureInitializer.js +13 -2
- package/dist/cjs/src/background/architecture/ArchitectureInitializer.js.map +1 -1
- package/dist/cjs/src/background/architecture/Containers.js +72 -2
- package/dist/cjs/src/background/architecture/Containers.js.map +1 -1
- package/dist/cjs/src/background/architecture/index.js +2 -1
- package/dist/cjs/src/background/architecture/index.js.map +1 -1
- package/dist/cjs/src/background/location/LocationContext.js +19 -2
- package/dist/cjs/src/background/location/LocationContext.js.map +1 -1
- package/dist/cjs/src/background/navigation/NavigationGraph.js +7 -0
- package/dist/cjs/src/background/navigation/NavigationGraph.js.map +1 -1
- package/dist/cjs/src/background/registry/ComponentRegistry.js +0 -2
- package/dist/cjs/src/background/registry/ComponentRegistry.js.map +1 -1
- package/dist/cjs/src/background/registry/ToolRegistry.js +83 -123
- package/dist/cjs/src/background/registry/ToolRegistry.js.map +1 -1
- package/dist/cjs/src/browser.js +48 -1
- package/dist/cjs/src/browser.js.map +1 -1
- package/dist/cjs/src/decorators/Component.js +4 -5
- package/dist/cjs/src/decorators/Component.js.map +1 -1
- package/dist/cjs/src/decorators/ContainerHelpers.js +16 -1
- package/dist/cjs/src/decorators/ContainerHelpers.js.map +1 -1
- package/dist/cjs/src/decorators/Tool.js +3 -9
- package/dist/cjs/src/decorators/Tool.js.map +1 -1
- package/dist/cjs/src/decorators/ToolHelpers.js +1 -3
- package/dist/cjs/src/decorators/ToolHelpers.js.map +1 -1
- package/dist/cjs/src/decorators/ToolPreset.js +14 -14
- package/dist/cjs/src/decorators/ToolPreset.js.map +1 -1
- package/dist/cjs/src/decorators/ToolProvider.js +30 -20
- package/dist/cjs/src/decorators/ToolProvider.js.map +1 -1
- package/dist/cjs/src/decorators/index.js +8 -13
- package/dist/cjs/src/decorators/index.js.map +1 -1
- package/dist/cjs/src/exposure/ExposureCollector.js +27 -0
- package/dist/cjs/src/exposure/ExposureCollector.js.map +1 -1
- package/dist/cjs/src/index.js +6 -9
- package/dist/cjs/src/index.js.map +1 -1
- package/dist/cjs/src/mcp/server.js +12 -14
- package/dist/cjs/src/mcp/server.js.map +1 -1
- package/dist/cjs/src/react/hooks/useChatWithContext.js +4 -10
- package/dist/cjs/src/react/hooks/useChatWithContext.js.map +1 -1
- package/dist/cjs/src/testing/graph-tester/core/GraphTester.js +339 -0
- package/dist/cjs/src/testing/graph-tester/core/GraphTester.js.map +1 -0
- package/dist/cjs/src/testing/graph-tester/core/TestFunction.js +189 -0
- package/dist/cjs/src/testing/graph-tester/core/TestFunction.js.map +1 -0
- package/dist/cjs/src/testing/graph-tester/core/types.js +24 -0
- package/dist/cjs/src/testing/graph-tester/core/types.js.map +1 -0
- package/dist/cjs/src/testing/graph-tester/fixtures/index.js +13 -0
- package/dist/cjs/src/testing/graph-tester/fixtures/index.js.map +1 -0
- package/dist/cjs/src/testing/graph-tester/fixtures/portPool.js +184 -0
- package/dist/cjs/src/testing/graph-tester/fixtures/portPool.js.map +1 -0
- package/dist/cjs/src/testing/graph-tester/index.js +98 -0
- package/dist/cjs/src/testing/graph-tester/index.js.map +1 -0
- package/dist/cjs/src/testing/graph-tester/modes/AccessibilityMode.js +230 -0
- package/dist/cjs/src/testing/graph-tester/modes/AccessibilityMode.js.map +1 -0
- package/dist/cjs/src/testing/graph-tester/modes/PerformanceMode.js +168 -0
- package/dist/cjs/src/testing/graph-tester/modes/PerformanceMode.js.map +1 -0
- package/dist/cjs/src/testing/graph-tester/modes/SEOMode.js +264 -0
- package/dist/cjs/src/testing/graph-tester/modes/SEOMode.js.map +1 -0
- package/dist/cjs/src/testing/graph-tester/modes/VisualRegressionMode.js +199 -0
- package/dist/cjs/src/testing/graph-tester/modes/VisualRegressionMode.js.map +1 -0
- package/dist/cjs/src/testing/graph-tester/modes/index.js +17 -0
- package/dist/cjs/src/testing/graph-tester/modes/index.js.map +1 -0
- package/dist/cjs/src/testing/graph-tester/reporters/HTMLReporter.js +411 -0
- package/dist/cjs/src/testing/graph-tester/reporters/HTMLReporter.js.map +1 -0
- package/dist/cjs/src/testing/graph-tester/reporters/JSONReporter.js +127 -0
- package/dist/cjs/src/testing/graph-tester/reporters/JSONReporter.js.map +1 -0
- package/dist/cjs/src/testing/graph-tester/reporters/MarkdownReporter.js +169 -0
- package/dist/cjs/src/testing/graph-tester/reporters/MarkdownReporter.js.map +1 -0
- package/dist/cjs/src/testing/graph-tester/reporters/UnifiedReporter.js +118 -0
- package/dist/cjs/src/testing/graph-tester/reporters/UnifiedReporter.js.map +1 -0
- package/dist/cjs/src/testing/graph-tester/reporters/index.js +17 -0
- package/dist/cjs/src/testing/graph-tester/reporters/index.js.map +1 -0
- package/dist/cjs/src/testing/graph-tester/screenshot/CanvasAnnotationRenderer.js +47 -0
- package/dist/cjs/src/testing/graph-tester/screenshot/CanvasAnnotationRenderer.js.map +1 -0
- package/dist/cjs/src/testing/graph-tester/screenshot/HTMLAnnotationRenderer.js +584 -0
- package/dist/cjs/src/testing/graph-tester/screenshot/HTMLAnnotationRenderer.js.map +1 -0
- package/dist/cjs/src/testing/graph-tester/screenshot/ScreenshotAnnotator.js +376 -0
- package/dist/cjs/src/testing/graph-tester/screenshot/ScreenshotAnnotator.js.map +1 -0
- package/dist/cjs/src/testing/graph-tester/screenshot/index.js +15 -0
- package/dist/cjs/src/testing/graph-tester/screenshot/index.js.map +1 -0
- package/dist/cjs/src/testing/graph-tester/screenshot/types.js +11 -0
- package/dist/cjs/src/testing/graph-tester/screenshot/types.js.map +1 -0
- package/dist/cjs/src/testing/selectors.js +1 -1
- package/dist/cjs/src/types/ComponentState.js.map +1 -1
- package/dist/esm/src/adapters/copilotkit/CopilotKitAdapter.d.ts.map +1 -1
- package/dist/esm/src/adapters/copilotkit/CopilotKitAdapter.js +3 -5
- package/dist/esm/src/adapters/copilotkit/CopilotKitAdapter.js.map +1 -1
- package/dist/esm/src/adapters/index.d.ts +0 -2
- package/dist/esm/src/adapters/index.d.ts.map +1 -1
- package/dist/esm/src/adapters/index.js +2 -1
- package/dist/esm/src/adapters/index.js.map +1 -1
- package/dist/esm/src/adapters/types/index.d.ts +0 -2
- package/dist/esm/src/adapters/types/index.d.ts.map +1 -1
- package/dist/esm/src/ai/AIInterface.d.ts +5 -1
- package/dist/esm/src/ai/AIInterface.d.ts.map +1 -1
- package/dist/esm/src/ai/AIInterface.js +111 -61
- package/dist/esm/src/ai/AIInterface.js.map +1 -1
- package/dist/esm/src/ai/ToolExecutor.js +36 -1
- package/dist/esm/src/ai/ToolExecutor.js.map +1 -1
- package/dist/esm/src/ai/ToolMatcher.d.ts +1 -0
- package/dist/esm/src/ai/ToolMatcher.d.ts.map +1 -1
- package/dist/esm/src/ai/ToolMatcher.js +6 -0
- package/dist/esm/src/ai/ToolMatcher.js.map +1 -1
- package/dist/esm/src/background/architecture/ArchitectureInitializer.d.ts +1 -1
- package/dist/esm/src/background/architecture/ArchitectureInitializer.d.ts.map +1 -1
- package/dist/esm/src/background/architecture/ArchitectureInitializer.js +13 -2
- package/dist/esm/src/background/architecture/ArchitectureInitializer.js.map +1 -1
- package/dist/esm/src/background/architecture/Containers.d.ts +35 -2
- package/dist/esm/src/background/architecture/Containers.d.ts.map +1 -1
- package/dist/esm/src/background/architecture/Containers.js +70 -2
- package/dist/esm/src/background/architecture/Containers.js.map +1 -1
- package/dist/esm/src/background/architecture/index.d.ts +1 -1
- package/dist/esm/src/background/architecture/index.d.ts.map +1 -1
- package/dist/esm/src/background/architecture/index.js +1 -1
- package/dist/esm/src/background/architecture/index.js.map +1 -1
- package/dist/esm/src/background/location/LocationContext.d.ts +3 -2
- package/dist/esm/src/background/location/LocationContext.d.ts.map +1 -1
- package/dist/esm/src/background/location/LocationContext.js +19 -2
- package/dist/esm/src/background/location/LocationContext.js.map +1 -1
- package/dist/esm/src/background/navigation/NavigationGraph.d.ts +5 -0
- package/dist/esm/src/background/navigation/NavigationGraph.d.ts.map +1 -1
- package/dist/esm/src/background/navigation/NavigationGraph.js +7 -0
- package/dist/esm/src/background/navigation/NavigationGraph.js.map +1 -1
- package/dist/esm/src/background/registry/ComponentRegistry.d.ts +0 -4
- package/dist/esm/src/background/registry/ComponentRegistry.d.ts.map +1 -1
- package/dist/esm/src/background/registry/ComponentRegistry.js +0 -2
- package/dist/esm/src/background/registry/ComponentRegistry.js.map +1 -1
- package/dist/esm/src/background/registry/ToolRegistry.d.ts +24 -38
- package/dist/esm/src/background/registry/ToolRegistry.d.ts.map +1 -1
- package/dist/esm/src/background/registry/ToolRegistry.js +81 -121
- package/dist/esm/src/background/registry/ToolRegistry.js.map +1 -1
- package/dist/esm/src/browser.d.ts +12 -1
- package/dist/esm/src/browser.d.ts.map +1 -1
- package/dist/esm/src/browser.js +17 -1
- package/dist/esm/src/browser.js.map +1 -1
- package/dist/esm/src/decorators/Component.d.ts +1 -8
- package/dist/esm/src/decorators/Component.d.ts.map +1 -1
- package/dist/esm/src/decorators/Component.js +4 -5
- package/dist/esm/src/decorators/Component.js.map +1 -1
- package/dist/esm/src/decorators/ContainerHelpers.d.ts +2 -1
- package/dist/esm/src/decorators/ContainerHelpers.d.ts.map +1 -1
- package/dist/esm/src/decorators/ContainerHelpers.js +16 -1
- package/dist/esm/src/decorators/ContainerHelpers.js.map +1 -1
- package/dist/esm/src/decorators/Tool.d.ts +1 -6
- package/dist/esm/src/decorators/Tool.d.ts.map +1 -1
- package/dist/esm/src/decorators/Tool.js +3 -9
- package/dist/esm/src/decorators/Tool.js.map +1 -1
- package/dist/esm/src/decorators/ToolHelpers.d.ts.map +1 -1
- package/dist/esm/src/decorators/ToolHelpers.js +1 -3
- package/dist/esm/src/decorators/ToolHelpers.js.map +1 -1
- package/dist/esm/src/decorators/ToolPreset.d.ts +12 -9
- package/dist/esm/src/decorators/ToolPreset.d.ts.map +1 -1
- package/dist/esm/src/decorators/ToolPreset.js +13 -13
- package/dist/esm/src/decorators/ToolPreset.js.map +1 -1
- package/dist/esm/src/decorators/ToolProvider.d.ts +5 -21
- package/dist/esm/src/decorators/ToolProvider.d.ts.map +1 -1
- package/dist/esm/src/decorators/ToolProvider.js +30 -19
- package/dist/esm/src/decorators/ToolProvider.js.map +1 -1
- package/dist/esm/src/decorators/index.d.ts +6 -12
- package/dist/esm/src/decorators/index.d.ts.map +1 -1
- package/dist/esm/src/decorators/index.js +7 -12
- package/dist/esm/src/decorators/index.js.map +1 -1
- package/dist/esm/src/exposure/ExposureCollector.d.ts +8 -0
- package/dist/esm/src/exposure/ExposureCollector.d.ts.map +1 -1
- package/dist/esm/src/exposure/ExposureCollector.js +27 -0
- package/dist/esm/src/exposure/ExposureCollector.js.map +1 -1
- package/dist/esm/src/index.d.ts +5 -6
- package/dist/esm/src/index.d.ts.map +1 -1
- package/dist/esm/src/index.js +5 -6
- package/dist/esm/src/index.js.map +1 -1
- package/dist/esm/src/mcp/server.d.ts +1 -1
- package/dist/esm/src/mcp/server.d.ts.map +1 -1
- package/dist/esm/src/mcp/server.js +12 -14
- package/dist/esm/src/mcp/server.js.map +1 -1
- package/dist/esm/src/react/hooks/useChatWithContext.d.ts +0 -2
- package/dist/esm/src/react/hooks/useChatWithContext.d.ts.map +1 -1
- package/dist/esm/src/react/hooks/useChatWithContext.js +4 -10
- package/dist/esm/src/react/hooks/useChatWithContext.js.map +1 -1
- package/dist/esm/src/testing/graph-tester/core/GraphTester.d.ts +110 -0
- package/dist/esm/src/testing/graph-tester/core/GraphTester.d.ts.map +1 -0
- package/dist/esm/src/testing/graph-tester/core/GraphTester.js +335 -0
- package/dist/esm/src/testing/graph-tester/core/GraphTester.js.map +1 -0
- package/dist/esm/src/testing/graph-tester/core/TestFunction.d.ts +120 -0
- package/dist/esm/src/testing/graph-tester/core/TestFunction.d.ts.map +1 -0
- package/dist/esm/src/testing/graph-tester/core/TestFunction.js +184 -0
- package/dist/esm/src/testing/graph-tester/core/TestFunction.js.map +1 -0
- package/dist/esm/src/testing/graph-tester/core/types.d.ts +331 -0
- package/dist/esm/src/testing/graph-tester/core/types.d.ts.map +1 -0
- package/dist/esm/src/testing/graph-tester/core/types.js +21 -0
- package/dist/esm/src/testing/graph-tester/core/types.js.map +1 -0
- package/dist/esm/src/testing/graph-tester/fixtures/index.d.ts +8 -0
- package/dist/esm/src/testing/graph-tester/fixtures/index.d.ts.map +1 -0
- package/dist/esm/src/testing/graph-tester/fixtures/index.js +7 -0
- package/dist/esm/src/testing/graph-tester/fixtures/index.js.map +1 -0
- package/dist/esm/src/testing/graph-tester/fixtures/portPool.d.ts +40 -0
- package/dist/esm/src/testing/graph-tester/fixtures/portPool.d.ts.map +1 -0
- package/dist/esm/src/testing/graph-tester/fixtures/portPool.js +147 -0
- package/dist/esm/src/testing/graph-tester/fixtures/portPool.js.map +1 -0
- package/dist/esm/src/testing/graph-tester/index.d.ts +84 -0
- package/dist/esm/src/testing/graph-tester/index.d.ts.map +1 -0
- package/dist/esm/src/testing/graph-tester/index.js +77 -0
- package/dist/esm/src/testing/graph-tester/index.js.map +1 -0
- package/dist/esm/src/testing/graph-tester/modes/AccessibilityMode.d.ts +40 -0
- package/dist/esm/src/testing/graph-tester/modes/AccessibilityMode.d.ts.map +1 -0
- package/dist/esm/src/testing/graph-tester/modes/AccessibilityMode.js +193 -0
- package/dist/esm/src/testing/graph-tester/modes/AccessibilityMode.js.map +1 -0
- package/dist/esm/src/testing/graph-tester/modes/PerformanceMode.d.ts +42 -0
- package/dist/esm/src/testing/graph-tester/modes/PerformanceMode.d.ts.map +1 -0
- package/dist/esm/src/testing/graph-tester/modes/PerformanceMode.js +131 -0
- package/dist/esm/src/testing/graph-tester/modes/PerformanceMode.js.map +1 -0
- package/dist/esm/src/testing/graph-tester/modes/SEOMode.d.ts +39 -0
- package/dist/esm/src/testing/graph-tester/modes/SEOMode.d.ts.map +1 -0
- package/dist/esm/src/testing/graph-tester/modes/SEOMode.js +227 -0
- package/dist/esm/src/testing/graph-tester/modes/SEOMode.js.map +1 -0
- package/dist/esm/src/testing/graph-tester/modes/VisualRegressionMode.d.ts +83 -0
- package/dist/esm/src/testing/graph-tester/modes/VisualRegressionMode.d.ts.map +1 -0
- package/dist/esm/src/testing/graph-tester/modes/VisualRegressionMode.js +162 -0
- package/dist/esm/src/testing/graph-tester/modes/VisualRegressionMode.js.map +1 -0
- package/dist/esm/src/testing/graph-tester/modes/index.d.ts +14 -0
- package/dist/esm/src/testing/graph-tester/modes/index.d.ts.map +1 -0
- package/dist/esm/src/testing/graph-tester/modes/index.js +10 -0
- package/dist/esm/src/testing/graph-tester/modes/index.js.map +1 -0
- package/dist/esm/src/testing/graph-tester/reporters/HTMLReporter.d.ts +38 -0
- package/dist/esm/src/testing/graph-tester/reporters/HTMLReporter.d.ts.map +1 -0
- package/dist/esm/src/testing/graph-tester/reporters/HTMLReporter.js +374 -0
- package/dist/esm/src/testing/graph-tester/reporters/HTMLReporter.js.map +1 -0
- package/dist/esm/src/testing/graph-tester/reporters/JSONReporter.d.ts +50 -0
- package/dist/esm/src/testing/graph-tester/reporters/JSONReporter.d.ts.map +1 -0
- package/dist/esm/src/testing/graph-tester/reporters/JSONReporter.js +90 -0
- package/dist/esm/src/testing/graph-tester/reporters/JSONReporter.js.map +1 -0
- package/dist/esm/src/testing/graph-tester/reporters/MarkdownReporter.d.ts +33 -0
- package/dist/esm/src/testing/graph-tester/reporters/MarkdownReporter.d.ts.map +1 -0
- package/dist/esm/src/testing/graph-tester/reporters/MarkdownReporter.js +132 -0
- package/dist/esm/src/testing/graph-tester/reporters/MarkdownReporter.js.map +1 -0
- package/dist/esm/src/testing/graph-tester/reporters/UnifiedReporter.d.ts +30 -0
- package/dist/esm/src/testing/graph-tester/reporters/UnifiedReporter.d.ts.map +1 -0
- package/dist/esm/src/testing/graph-tester/reporters/UnifiedReporter.js +81 -0
- package/dist/esm/src/testing/graph-tester/reporters/UnifiedReporter.js.map +1 -0
- package/dist/esm/src/testing/graph-tester/reporters/index.d.ts +14 -0
- package/dist/esm/src/testing/graph-tester/reporters/index.d.ts.map +1 -0
- package/dist/esm/src/testing/graph-tester/reporters/index.js +10 -0
- package/dist/esm/src/testing/graph-tester/reporters/index.js.map +1 -0
- package/dist/esm/src/testing/graph-tester/screenshot/CanvasAnnotationRenderer.d.ts +33 -0
- package/dist/esm/src/testing/graph-tester/screenshot/CanvasAnnotationRenderer.d.ts.map +1 -0
- package/dist/esm/src/testing/graph-tester/screenshot/CanvasAnnotationRenderer.js +43 -0
- package/dist/esm/src/testing/graph-tester/screenshot/CanvasAnnotationRenderer.js.map +1 -0
- package/dist/esm/src/testing/graph-tester/screenshot/HTMLAnnotationRenderer.d.ts +70 -0
- package/dist/esm/src/testing/graph-tester/screenshot/HTMLAnnotationRenderer.d.ts.map +1 -0
- package/dist/esm/src/testing/graph-tester/screenshot/HTMLAnnotationRenderer.js +547 -0
- package/dist/esm/src/testing/graph-tester/screenshot/HTMLAnnotationRenderer.js.map +1 -0
- package/dist/esm/src/testing/graph-tester/screenshot/ScreenshotAnnotator.d.ts +83 -0
- package/dist/esm/src/testing/graph-tester/screenshot/ScreenshotAnnotator.d.ts.map +1 -0
- package/dist/esm/src/testing/graph-tester/screenshot/ScreenshotAnnotator.js +339 -0
- package/dist/esm/src/testing/graph-tester/screenshot/ScreenshotAnnotator.js.map +1 -0
- package/dist/esm/src/testing/graph-tester/screenshot/index.d.ts +11 -0
- package/dist/esm/src/testing/graph-tester/screenshot/index.d.ts.map +1 -0
- package/dist/esm/src/testing/graph-tester/screenshot/index.js +9 -0
- package/dist/esm/src/testing/graph-tester/screenshot/index.js.map +1 -0
- package/dist/esm/src/testing/graph-tester/screenshot/types.d.ts +331 -0
- package/dist/esm/src/testing/graph-tester/screenshot/types.d.ts.map +1 -0
- package/dist/esm/src/testing/graph-tester/screenshot/types.js +10 -0
- package/dist/esm/src/testing/graph-tester/screenshot/types.js.map +1 -0
- package/dist/esm/src/testing/selectors.d.ts +1 -1
- package/dist/esm/src/testing/selectors.js +1 -1
- package/dist/esm/src/types/ComponentState.d.ts +0 -4
- package/dist/esm/src/types/ComponentState.d.ts.map +1 -1
- package/dist/esm/src/types/ComponentState.js.map +1 -1
- package/package.json +22 -8
- package/dist/cjs/src/adapters/native/NativeAdapter.js +0 -268
- package/dist/cjs/src/adapters/native/NativeAdapter.js.map +0 -1
- package/dist/cjs/src/adapters/native/index.js +0 -10
- package/dist/cjs/src/adapters/native/index.js.map +0 -1
- package/dist/cjs/src/ui/react/chat/ChatBubble.js +0 -221
- package/dist/cjs/src/ui/react/chat/ChatBubble.js.map +0 -1
- package/dist/esm/src/adapters/native/NativeAdapter.d.ts +0 -47
- package/dist/esm/src/adapters/native/NativeAdapter.d.ts.map +0 -1
- package/dist/esm/src/adapters/native/NativeAdapter.js +0 -230
- package/dist/esm/src/adapters/native/NativeAdapter.js.map +0 -1
- package/dist/esm/src/adapters/native/index.d.ts +0 -6
- package/dist/esm/src/adapters/native/index.d.ts.map +0 -1
- package/dist/esm/src/adapters/native/index.js +0 -5
- package/dist/esm/src/adapters/native/index.js.map +0 -1
- package/dist/esm/src/ui/react/chat/ChatBubble.d.ts +0 -27
- package/dist/esm/src/ui/react/chat/ChatBubble.d.ts.map +0 -1
- package/dist/esm/src/ui/react/chat/ChatBubble.js +0 -184
- package/dist/esm/src/ui/react/chat/ChatBubble.js.map +0 -1
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Abstract base class for all test functions.
|
|
3
|
+
*
|
|
4
|
+
* Test functions implement specific testing modes (visual regression, performance, accessibility, etc.).
|
|
5
|
+
* Each test function:
|
|
6
|
+
* 1. Receives a Playwright page and test context
|
|
7
|
+
* 2. Performs its testing logic
|
|
8
|
+
* 3. Returns a TestResult with pass/fail status and metadata
|
|
9
|
+
*
|
|
10
|
+
* @packageDocumentation
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* Abstract base class for test functions.
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```typescript
|
|
17
|
+
* class VisualRegressionMode extends TestFunction {
|
|
18
|
+
* mode = 'visual';
|
|
19
|
+
*
|
|
20
|
+
* async execute(page: Page, context: TestContext): Promise<TestResult> {
|
|
21
|
+
* const startTime = Date.now();
|
|
22
|
+
* const screenshot = await page.screenshot({ fullPage: true });
|
|
23
|
+
*
|
|
24
|
+
* return {
|
|
25
|
+
* passed: true,
|
|
26
|
+
* duration: Date.now() - startTime,
|
|
27
|
+
* errors: [],
|
|
28
|
+
* metadata: {
|
|
29
|
+
* screenshot,
|
|
30
|
+
* screenshotPath: './screenshots/example.png'
|
|
31
|
+
* }
|
|
32
|
+
* };
|
|
33
|
+
* }
|
|
34
|
+
* }
|
|
35
|
+
* ```
|
|
36
|
+
*/
|
|
37
|
+
export class TestFunction {
|
|
38
|
+
/**
|
|
39
|
+
* Execute the full test lifecycle: setup, execute, teardown.
|
|
40
|
+
* This method handles the orchestration and error handling.
|
|
41
|
+
*
|
|
42
|
+
* @param page - Playwright page instance
|
|
43
|
+
* @param context - Test context
|
|
44
|
+
* @returns Test result
|
|
45
|
+
*/
|
|
46
|
+
async run(page, context) {
|
|
47
|
+
const startTime = Date.now();
|
|
48
|
+
const errors = [];
|
|
49
|
+
try {
|
|
50
|
+
// Check if we should test this route
|
|
51
|
+
if (this.shouldTest && !this.shouldTest(context)) {
|
|
52
|
+
return {
|
|
53
|
+
passed: true,
|
|
54
|
+
duration: Date.now() - startTime,
|
|
55
|
+
errors: [],
|
|
56
|
+
metadata: {
|
|
57
|
+
skipped: true,
|
|
58
|
+
reason: 'Skipped by shouldTest() predicate',
|
|
59
|
+
},
|
|
60
|
+
mode: this.mode,
|
|
61
|
+
route: context.route,
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
// Setup
|
|
65
|
+
if (this.setup) {
|
|
66
|
+
try {
|
|
67
|
+
await this.setup(page);
|
|
68
|
+
}
|
|
69
|
+
catch (error) {
|
|
70
|
+
errors.push({
|
|
71
|
+
severity: 'critical',
|
|
72
|
+
message: `Setup failed: ${error instanceof Error ? error.message : String(error)}`,
|
|
73
|
+
stack: error instanceof Error ? error.stack : undefined,
|
|
74
|
+
});
|
|
75
|
+
return {
|
|
76
|
+
passed: false,
|
|
77
|
+
duration: Date.now() - startTime,
|
|
78
|
+
errors,
|
|
79
|
+
metadata: {},
|
|
80
|
+
mode: this.mode,
|
|
81
|
+
route: context.route,
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
// Execute
|
|
86
|
+
let result;
|
|
87
|
+
try {
|
|
88
|
+
result = await this.execute(page, context);
|
|
89
|
+
}
|
|
90
|
+
catch (error) {
|
|
91
|
+
errors.push({
|
|
92
|
+
severity: 'critical',
|
|
93
|
+
message: `Execution failed: ${error instanceof Error ? error.message : String(error)}`,
|
|
94
|
+
stack: error instanceof Error ? error.stack : undefined,
|
|
95
|
+
});
|
|
96
|
+
result = {
|
|
97
|
+
passed: false,
|
|
98
|
+
duration: Date.now() - startTime,
|
|
99
|
+
errors,
|
|
100
|
+
metadata: {},
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
// Teardown
|
|
104
|
+
if (this.teardown) {
|
|
105
|
+
try {
|
|
106
|
+
await this.teardown(page);
|
|
107
|
+
}
|
|
108
|
+
catch (error) {
|
|
109
|
+
errors.push({
|
|
110
|
+
severity: 'warning',
|
|
111
|
+
message: `Teardown failed: ${error instanceof Error ? error.message : String(error)}`,
|
|
112
|
+
stack: error instanceof Error ? error.stack : undefined,
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
// Merge errors and add metadata
|
|
117
|
+
return {
|
|
118
|
+
...result,
|
|
119
|
+
errors: [...errors, ...result.errors],
|
|
120
|
+
mode: this.mode,
|
|
121
|
+
route: context.route,
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
catch (error) {
|
|
125
|
+
// Catch-all for unexpected errors
|
|
126
|
+
return {
|
|
127
|
+
passed: false,
|
|
128
|
+
duration: Date.now() - startTime,
|
|
129
|
+
errors: [
|
|
130
|
+
...errors,
|
|
131
|
+
{
|
|
132
|
+
severity: 'critical',
|
|
133
|
+
message: `Unexpected error: ${error instanceof Error ? error.message : String(error)}`,
|
|
134
|
+
stack: error instanceof Error ? error.stack : undefined,
|
|
135
|
+
},
|
|
136
|
+
],
|
|
137
|
+
metadata: {},
|
|
138
|
+
mode: this.mode,
|
|
139
|
+
route: context.route,
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Validate test function configuration.
|
|
145
|
+
* Override to add custom validation logic.
|
|
146
|
+
*
|
|
147
|
+
* @returns Array of validation errors (empty if valid)
|
|
148
|
+
*/
|
|
149
|
+
validate() {
|
|
150
|
+
const errors = [];
|
|
151
|
+
if (!this.mode) {
|
|
152
|
+
errors.push('mode is required');
|
|
153
|
+
}
|
|
154
|
+
if (!this.name) {
|
|
155
|
+
errors.push('name is required');
|
|
156
|
+
}
|
|
157
|
+
if (!this.description) {
|
|
158
|
+
errors.push('description is required');
|
|
159
|
+
}
|
|
160
|
+
return errors;
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Get test function info for reporting.
|
|
164
|
+
*/
|
|
165
|
+
getInfo() {
|
|
166
|
+
return {
|
|
167
|
+
mode: this.mode,
|
|
168
|
+
name: this.name,
|
|
169
|
+
description: this.description,
|
|
170
|
+
};
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* Type guard to check if an object is a TestFunction.
|
|
175
|
+
*/
|
|
176
|
+
export function isTestFunction(obj) {
|
|
177
|
+
return (obj &&
|
|
178
|
+
typeof obj === 'object' &&
|
|
179
|
+
typeof obj.mode === 'string' &&
|
|
180
|
+
typeof obj.name === 'string' &&
|
|
181
|
+
typeof obj.description === 'string' &&
|
|
182
|
+
typeof obj.execute === 'function');
|
|
183
|
+
}
|
|
184
|
+
//# sourceMappingURL=TestFunction.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TestFunction.js","sourceRoot":"","sources":["../../../../../../src/testing/graph-tester/core/TestFunction.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,331 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Core types for the graph-based testing framework.
|
|
3
|
+
*
|
|
4
|
+
* This file is the contract between all packages - changes require consensus.
|
|
5
|
+
*
|
|
6
|
+
* @packageDocumentation
|
|
7
|
+
*/
|
|
8
|
+
import type { Page } from '@playwright/test';
|
|
9
|
+
/**
|
|
10
|
+
* Context provided to test functions during execution.
|
|
11
|
+
* Contains route information and optional metadata.
|
|
12
|
+
*/
|
|
13
|
+
export interface TestContext {
|
|
14
|
+
/** The route being tested (e.g., '/', '/dashboard', '/blog/:slug') */
|
|
15
|
+
route: string;
|
|
16
|
+
/** Unique identifier for this navigation context (enterprise only) */
|
|
17
|
+
contextId?: string;
|
|
18
|
+
/** Additional metadata about the route (tools, parent/child, custom data) */
|
|
19
|
+
metadata?: RouteMetadata;
|
|
20
|
+
/** Base URL for the application under test */
|
|
21
|
+
baseUrl?: string;
|
|
22
|
+
/** Current viewport being tested (for responsive testing) */
|
|
23
|
+
viewport?: ViewportConfig;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Metadata associated with a route.
|
|
27
|
+
* Enterprise users get richer metadata via NavigationGraph.
|
|
28
|
+
*/
|
|
29
|
+
export interface RouteMetadata {
|
|
30
|
+
/** Human-readable name for the route */
|
|
31
|
+
name?: string;
|
|
32
|
+
/** Tools available on this route (enterprise only) */
|
|
33
|
+
tools?: string[];
|
|
34
|
+
/** Parent route in navigation hierarchy (enterprise only) */
|
|
35
|
+
parent?: string;
|
|
36
|
+
/** Child routes (enterprise only) */
|
|
37
|
+
children?: string[];
|
|
38
|
+
/** Navigation paths to other routes (enterprise only) */
|
|
39
|
+
navigationPaths?: NavigationPath[];
|
|
40
|
+
/** Custom user-defined metadata */
|
|
41
|
+
[key: string]: any;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Navigation path between routes (enterprise only).
|
|
45
|
+
*/
|
|
46
|
+
export interface NavigationPath {
|
|
47
|
+
/** Target route */
|
|
48
|
+
target: string;
|
|
49
|
+
/** Navigation method (link, button, programmatic) */
|
|
50
|
+
method: 'link' | 'button' | 'programmatic' | 'other';
|
|
51
|
+
/** Element selector that triggers navigation (if applicable) */
|
|
52
|
+
selector?: string;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Result of a test function execution.
|
|
56
|
+
*/
|
|
57
|
+
export interface TestResult {
|
|
58
|
+
/** Whether the test passed */
|
|
59
|
+
passed: boolean;
|
|
60
|
+
/** Duration in milliseconds */
|
|
61
|
+
duration: number;
|
|
62
|
+
/** Errors encountered during testing */
|
|
63
|
+
errors: TestError[];
|
|
64
|
+
/** Additional test-specific metadata (screenshots, metrics, violations, etc.) */
|
|
65
|
+
metadata: Record<string, any>;
|
|
66
|
+
/** Test mode that produced this result */
|
|
67
|
+
mode?: TestMode;
|
|
68
|
+
/** Route that was tested */
|
|
69
|
+
route?: string;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Error encountered during testing.
|
|
73
|
+
*/
|
|
74
|
+
export interface TestError {
|
|
75
|
+
/** Error severity */
|
|
76
|
+
severity: 'critical' | 'warning' | 'info';
|
|
77
|
+
/** Error message */
|
|
78
|
+
message: string;
|
|
79
|
+
/** Location where error occurred (file:line, selector, etc.) */
|
|
80
|
+
location?: string;
|
|
81
|
+
/** Stack trace (if available) */
|
|
82
|
+
stack?: string;
|
|
83
|
+
/** Additional error context */
|
|
84
|
+
context?: Record<string, any>;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Descriptor for a route to be tested.
|
|
88
|
+
* Open-source users provide these manually.
|
|
89
|
+
* Enterprise users get these automatically via NavigationGraph.
|
|
90
|
+
*/
|
|
91
|
+
export interface RouteDescriptor {
|
|
92
|
+
/** The route path */
|
|
93
|
+
route: string;
|
|
94
|
+
/** Unique identifier (enterprise only) */
|
|
95
|
+
contextId?: string;
|
|
96
|
+
/** Route metadata */
|
|
97
|
+
metadata?: RouteMetadata;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Configuration for route discovery.
|
|
101
|
+
*/
|
|
102
|
+
export interface RouteDiscoveryConfig {
|
|
103
|
+
/** Discovery strategy ('manual', 'navigation-graph', 'custom') */
|
|
104
|
+
strategy: 'manual' | 'navigation-graph' | 'custom';
|
|
105
|
+
/** Routes to include (glob patterns) */
|
|
106
|
+
include?: string[];
|
|
107
|
+
/** Routes to exclude (glob patterns) */
|
|
108
|
+
exclude?: string[];
|
|
109
|
+
/** Custom discovery function */
|
|
110
|
+
discoveryFn?: () => Promise<RouteDescriptor[]>;
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Available test modes.
|
|
114
|
+
*/
|
|
115
|
+
export type TestMode = 'visual' | 'performance' | 'accessibility' | 'seo' | string;
|
|
116
|
+
/**
|
|
117
|
+
* Configuration for a test mode.
|
|
118
|
+
*/
|
|
119
|
+
export interface TestModeConfig {
|
|
120
|
+
/** Mode identifier */
|
|
121
|
+
mode: TestMode;
|
|
122
|
+
/** Whether this mode is enabled */
|
|
123
|
+
enabled?: boolean;
|
|
124
|
+
/** Mode-specific options */
|
|
125
|
+
options?: Record<string, any>;
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Configuration for GraphTester.
|
|
129
|
+
*/
|
|
130
|
+
export interface GraphTesterConfig {
|
|
131
|
+
/** Base URL for the application under test */
|
|
132
|
+
baseUrl: string;
|
|
133
|
+
/** Routes to test (manual mode) or discovery config */
|
|
134
|
+
routes?: RouteDescriptor[] | RouteDiscoveryConfig;
|
|
135
|
+
/** Test modes to run */
|
|
136
|
+
modes: TestMode[] | TestModeConfig[];
|
|
137
|
+
/** Output configuration */
|
|
138
|
+
output?: OutputConfig;
|
|
139
|
+
/** Execution configuration */
|
|
140
|
+
execution?: ExecutionConfig;
|
|
141
|
+
/** Browser configuration */
|
|
142
|
+
browser?: BrowserConfig;
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Output configuration.
|
|
146
|
+
*/
|
|
147
|
+
export interface OutputConfig {
|
|
148
|
+
/** Output directory */
|
|
149
|
+
dir: string;
|
|
150
|
+
/** Output formats ('json', 'html', 'markdown', 'csv') */
|
|
151
|
+
formats?: ('json' | 'html' | 'markdown' | 'csv')[];
|
|
152
|
+
/** Whether to include screenshots */
|
|
153
|
+
includeScreenshots?: boolean;
|
|
154
|
+
/** Whether to include detailed logs */
|
|
155
|
+
includeDetailedLogs?: boolean;
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* Execution configuration.
|
|
159
|
+
*/
|
|
160
|
+
export interface ExecutionConfig {
|
|
161
|
+
/** Number of parallel workers */
|
|
162
|
+
parallel?: number;
|
|
163
|
+
/** Timeout per test (ms) */
|
|
164
|
+
timeout?: number;
|
|
165
|
+
/** Number of retries on failure */
|
|
166
|
+
retries?: number;
|
|
167
|
+
/** Whether to fail fast on first error */
|
|
168
|
+
failFast?: boolean;
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* Viewport configuration for responsive testing.
|
|
172
|
+
*/
|
|
173
|
+
export interface ViewportConfig {
|
|
174
|
+
/** Viewport name (e.g., 'desktop', 'tablet', 'mobile') */
|
|
175
|
+
name: string;
|
|
176
|
+
/** Width in pixels */
|
|
177
|
+
width: number;
|
|
178
|
+
/** Height in pixels */
|
|
179
|
+
height: number;
|
|
180
|
+
/** Device scale factor (default: 1) */
|
|
181
|
+
deviceScaleFactor?: number;
|
|
182
|
+
/** Whether this is a mobile device (default: false) */
|
|
183
|
+
isMobile?: boolean;
|
|
184
|
+
/** Whether device has touch support (default: false) */
|
|
185
|
+
hasTouch?: boolean;
|
|
186
|
+
/** User agent override */
|
|
187
|
+
userAgent?: string;
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* Predefined viewport presets.
|
|
191
|
+
*/
|
|
192
|
+
export declare const ViewportPresets: {
|
|
193
|
+
readonly Desktop: {
|
|
194
|
+
readonly name: "desktop";
|
|
195
|
+
readonly width: 1920;
|
|
196
|
+
readonly height: 1080;
|
|
197
|
+
};
|
|
198
|
+
readonly DesktopSmall: {
|
|
199
|
+
readonly name: "desktop-small";
|
|
200
|
+
readonly width: 1366;
|
|
201
|
+
readonly height: 768;
|
|
202
|
+
};
|
|
203
|
+
readonly Laptop: {
|
|
204
|
+
readonly name: "laptop";
|
|
205
|
+
readonly width: 1280;
|
|
206
|
+
readonly height: 720;
|
|
207
|
+
};
|
|
208
|
+
readonly TabletLandscape: {
|
|
209
|
+
readonly name: "tablet-landscape";
|
|
210
|
+
readonly width: 1024;
|
|
211
|
+
readonly height: 768;
|
|
212
|
+
readonly isMobile: true;
|
|
213
|
+
readonly hasTouch: true;
|
|
214
|
+
};
|
|
215
|
+
readonly TabletPortrait: {
|
|
216
|
+
readonly name: "tablet-portrait";
|
|
217
|
+
readonly width: 768;
|
|
218
|
+
readonly height: 1024;
|
|
219
|
+
readonly isMobile: true;
|
|
220
|
+
readonly hasTouch: true;
|
|
221
|
+
};
|
|
222
|
+
readonly MobileLarge: {
|
|
223
|
+
readonly name: "mobile-large";
|
|
224
|
+
readonly width: 414;
|
|
225
|
+
readonly height: 896;
|
|
226
|
+
readonly isMobile: true;
|
|
227
|
+
readonly hasTouch: true;
|
|
228
|
+
};
|
|
229
|
+
readonly Mobile: {
|
|
230
|
+
readonly name: "mobile";
|
|
231
|
+
readonly width: 375;
|
|
232
|
+
readonly height: 812;
|
|
233
|
+
readonly isMobile: true;
|
|
234
|
+
readonly hasTouch: true;
|
|
235
|
+
};
|
|
236
|
+
readonly MobileSmall: {
|
|
237
|
+
readonly name: "mobile-small";
|
|
238
|
+
readonly width: 320;
|
|
239
|
+
readonly height: 568;
|
|
240
|
+
readonly isMobile: true;
|
|
241
|
+
readonly hasTouch: true;
|
|
242
|
+
};
|
|
243
|
+
};
|
|
244
|
+
/**
|
|
245
|
+
* Browser configuration.
|
|
246
|
+
*/
|
|
247
|
+
export interface BrowserConfig {
|
|
248
|
+
/** Browser type ('chromium', 'firefox', 'webkit') */
|
|
249
|
+
browserType?: 'chromium' | 'firefox' | 'webkit';
|
|
250
|
+
/** Single viewport size (legacy - use viewports for responsive testing) */
|
|
251
|
+
viewport?: {
|
|
252
|
+
width: number;
|
|
253
|
+
height: number;
|
|
254
|
+
};
|
|
255
|
+
/** Multiple viewports for responsive testing */
|
|
256
|
+
viewports?: ViewportConfig[];
|
|
257
|
+
/** Whether to run headless */
|
|
258
|
+
headless?: boolean;
|
|
259
|
+
/** Additional launch options */
|
|
260
|
+
launchOptions?: Record<string, any>;
|
|
261
|
+
}
|
|
262
|
+
/**
|
|
263
|
+
* Aggregated results from all test executions.
|
|
264
|
+
*/
|
|
265
|
+
export interface AggregatedTestResults {
|
|
266
|
+
/** Total number of routes tested */
|
|
267
|
+
routeCount: number;
|
|
268
|
+
/** Total number of tests run */
|
|
269
|
+
testCount: number;
|
|
270
|
+
/** Number of passed tests */
|
|
271
|
+
passedCount: number;
|
|
272
|
+
/** Number of failed tests */
|
|
273
|
+
failedCount: number;
|
|
274
|
+
/** Pass rate percentage */
|
|
275
|
+
passRate: number;
|
|
276
|
+
/** Total duration (ms) */
|
|
277
|
+
totalDuration: number;
|
|
278
|
+
/** Results grouped by route */
|
|
279
|
+
resultsByRoute: Map<string, TestResult[]>;
|
|
280
|
+
/** Results grouped by mode */
|
|
281
|
+
resultsByMode: Map<TestMode, TestResult[]>;
|
|
282
|
+
/** All errors */
|
|
283
|
+
errors: TestError[];
|
|
284
|
+
/** Timestamp */
|
|
285
|
+
timestamp: Date;
|
|
286
|
+
/** Configuration used */
|
|
287
|
+
config: GraphTesterConfig;
|
|
288
|
+
}
|
|
289
|
+
/**
|
|
290
|
+
* Reporter interface.
|
|
291
|
+
*/
|
|
292
|
+
export interface Reporter {
|
|
293
|
+
/** Generate report from aggregated results */
|
|
294
|
+
generate(results: AggregatedTestResults): Promise<void>;
|
|
295
|
+
/** Reporter name */
|
|
296
|
+
name: string;
|
|
297
|
+
}
|
|
298
|
+
/**
|
|
299
|
+
* Report format options.
|
|
300
|
+
*/
|
|
301
|
+
export type ReportFormat = 'json' | 'html' | 'markdown' | 'csv';
|
|
302
|
+
/**
|
|
303
|
+
* Test function execution options.
|
|
304
|
+
*/
|
|
305
|
+
export interface ExecuteOptions {
|
|
306
|
+
/** Playwright page instance */
|
|
307
|
+
page: Page;
|
|
308
|
+
/** Test context */
|
|
309
|
+
context: TestContext;
|
|
310
|
+
/** Timeout (ms) */
|
|
311
|
+
timeout?: number;
|
|
312
|
+
}
|
|
313
|
+
/**
|
|
314
|
+
* Test function setup options.
|
|
315
|
+
*/
|
|
316
|
+
export interface SetupOptions {
|
|
317
|
+
/** Playwright page instance */
|
|
318
|
+
page: Page;
|
|
319
|
+
/** Test context */
|
|
320
|
+
context?: TestContext;
|
|
321
|
+
}
|
|
322
|
+
/**
|
|
323
|
+
* Test function teardown options.
|
|
324
|
+
*/
|
|
325
|
+
export interface TeardownOptions {
|
|
326
|
+
/** Playwright page instance */
|
|
327
|
+
page: Page;
|
|
328
|
+
/** Test context */
|
|
329
|
+
context?: TestContext;
|
|
330
|
+
}
|
|
331
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../src/testing/graph-tester/core/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Core types for the graph-based testing framework.
|
|
3
|
+
*
|
|
4
|
+
* This file is the contract between all packages - changes require consensus.
|
|
5
|
+
*
|
|
6
|
+
* @packageDocumentation
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* Predefined viewport presets.
|
|
10
|
+
*/
|
|
11
|
+
export const ViewportPresets = {
|
|
12
|
+
Desktop: { name: 'desktop', width: 1920, height: 1080 },
|
|
13
|
+
DesktopSmall: { name: 'desktop-small', width: 1366, height: 768 },
|
|
14
|
+
Laptop: { name: 'laptop', width: 1280, height: 720 },
|
|
15
|
+
TabletLandscape: { name: 'tablet-landscape', width: 1024, height: 768, isMobile: true, hasTouch: true },
|
|
16
|
+
TabletPortrait: { name: 'tablet-portrait', width: 768, height: 1024, isMobile: true, hasTouch: true },
|
|
17
|
+
MobileLarge: { name: 'mobile-large', width: 414, height: 896, isMobile: true, hasTouch: true },
|
|
18
|
+
Mobile: { name: 'mobile', width: 375, height: 812, isMobile: true, hasTouch: true },
|
|
19
|
+
MobileSmall: { name: 'mobile-small', width: 320, height: 568, isMobile: true, hasTouch: true },
|
|
20
|
+
};
|
|
21
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../../src/testing/graph-tester/core/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAyPH;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;IACvD,YAAY,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE;IACjE,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE;IACpD,eAAe,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE;IACvG,cAAc,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE;IACrG,WAAW,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE;IAC9F,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE;IACnF,WAAW,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE;CACtF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/testing/graph-tester/fixtures/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC3D,YAAY,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/testing/graph-tester/fixtures/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Port pool fixture for parallel testing.
|
|
3
|
+
*
|
|
4
|
+
* Automatically assigns unique ports to each test worker to avoid conflicts.
|
|
5
|
+
*
|
|
6
|
+
* @packageDocumentation
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* Port pool fixture interface.
|
|
10
|
+
*/
|
|
11
|
+
export interface PortPoolFixture {
|
|
12
|
+
/** Assigned port for this test */
|
|
13
|
+
port: number;
|
|
14
|
+
/** Base URL with assigned port */
|
|
15
|
+
baseURL: string;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Playwright test fixture with automatic port assignment.
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
* ```typescript
|
|
22
|
+
* import { test, expect } from '@supernal/interface/testing/graph-tester/fixtures';
|
|
23
|
+
*
|
|
24
|
+
* test('visual regression', async ({ page, port, baseURL }) => {
|
|
25
|
+
* console.log(`Test running on port ${port}`);
|
|
26
|
+
* await page.goto(baseURL);
|
|
27
|
+
* // Test automatically gets unique port!
|
|
28
|
+
* });
|
|
29
|
+
* ```
|
|
30
|
+
*/
|
|
31
|
+
export declare const test: import("@playwright/test").TestType<import("@playwright/test").PlaywrightTestArgs & import("@playwright/test").PlaywrightTestOptions & PortPoolFixture, import("@playwright/test").PlaywrightWorkerArgs & import("@playwright/test").PlaywrightWorkerOptions>;
|
|
32
|
+
/**
|
|
33
|
+
* Re-export expect from Playwright.
|
|
34
|
+
*/
|
|
35
|
+
export declare const expect: import("@playwright/test").Expect<{}>;
|
|
36
|
+
/**
|
|
37
|
+
* Cleanup port pool (call at end of test suite).
|
|
38
|
+
*/
|
|
39
|
+
export declare function cleanupPortPool(): Promise<void>;
|
|
40
|
+
//# sourceMappingURL=portPool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"portPool.d.ts","sourceRoot":"","sources":["../../../../../../src/testing/graph-tester/fixtures/portPool.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAOH;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,kCAAkC;IAClC,IAAI,EAAE,MAAM,CAAC;IAEb,kCAAkC;IAClC,OAAO,EAAE,MAAM,CAAC;CACjB;AA2GD;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,IAAI,+PAUf,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,MAAM,uCAAa,CAAC;AAEjC;;GAEG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAErD"}
|