Skip to main content

Feature Inventory

Complete feature inventory for Praman v1.0. Each entry documents what the feature does, why it matters, its API, implicit behaviors, and source files.

tip

For the auto-generated API reference from TSDoc comments, see the API Reference in the navbar. This page provides a higher-level feature overview with usage examples and context.

Overview​

MetricCount
Public Functions120+
Public Types100+
Error Codes56
Fixture Modules12
Custom Matchers10
UI5 Control Types199
Auth Strategies6
SAP Business Domains5
Sub-Path Exports6

For the full detailed inventory with API examples, source files, and implicit behaviors, see the capabilities document.

Core Playwright Extensions​

UI5 Control Discovery​

Discovers SAP UI5 controls using a multi-strategy chain (cache, direct-ID, RecordReplay, registry scan) and returns a typed proxy for interaction. Eliminates brittle CSS/XPath selectors.

const btn = await ui5.control({ id: 'saveBtn' });
const input = await ui5.control({
controlType: 'sap.m.Input',
properties: { placeholder: 'Enter vendor' },
});

Control Proxy (Typed Method Forwarding)​

Wraps discovered controls in a JavaScript Proxy that routes method calls through page.evaluate() with automatic type detection and method blacklisting.

const control = await ui5.control({ id: 'myInput' });
await control.press();
await control.enterText('Hello');
const value = await control.getValue();

Three Interaction Strategies​

  • UI5-native (default): firePress() / fireTap() / DOM click fallback
  • DOM-first: DOM click first, UI5 event fallback
  • OPA5: SAP RecordReplay API

10 Custom UI5 Matchers​

Extends expect() with UI5-specific assertions: toHaveUI5Text, toBeUI5Visible, toBeUI5Enabled, toHaveUI5Property, toHaveUI5ValueState, toHaveUI5Binding, toBeUI5ControlType, toHaveUI5RowCount, toHaveUI5CellText, toHaveUI5SelectedRows.

SAP UI5 Control Support​

  • 199 typed control definitions covering all major categories
  • Table operations for 6 table variants (sap.m.Table, sap.ui.table.Table, TreeTable, AnalyticalTable, SmartTable, mdc.Table)
  • Dialog management for 10+ dialog types
  • Date/time picker operations with locale awareness

UI5 Lifecycle & Synchronization​

  • Automatic stability wait — three-tier: bootstrap (60s) / stable (15s) / DOM settle (500ms)
  • Request interception — blocks WalkMe, Google Analytics, Qualtrics
  • Retry with exponential backoff — infrastructure-level retry with jitter

Fixtures & Test Abstractions​

  • 12 fixture modules merged via mergeTests()
  • 6 authentication strategies: basic, BTP SAML, Office 365, API, certificate, multi-tenant
  • 9 FLP navigation functions: app, tile, intent, hash, home, back, forward, search, getCurrentHash
  • FLP shell & footer interaction
  • SM12 lock management with auto-cleanup
  • User settings reader (language, date format, timezone)
  • Test data generation with UUID/timestamp substitution

OData / API Automation​

  • Model-level access — read data from UI5 OData models in the browser
  • HTTP-level CRUD — direct OData operations with CSRF token management

AI & Agent Enablement​

  • Page discovery — structured PageContext for AI agents
  • Capability registry — machine-readable API catalog for prompt engineering
  • Recipe registry — reusable test pattern library
  • Agentic handler — autonomous test generation from natural language
  • LLM abstraction — provider-agnostic (Claude, OpenAI, Azure OpenAI)
  • Vocabulary service — business term to UI5 selector resolution

Configuration & Extensibility​

  • Zod-validated config with environment variable overrides
  • 14 error classes, 56 error codes with retryable flag and suggestions[]
  • Structured logging with secret redaction
  • OpenTelemetry integration for distributed tracing
  • Playwright step decoration for rich HTML reports

Domain-Specific Features​

  • Fiori Elements helpers — List Report + Object Page APIs
  • 5 SAP domain intents — Procurement, Sales, Finance, Manufacturing, Master Data
  • Compliance reporter — tracks Praman vs raw Playwright usage
  • OData trace reporter — per-entity-set performance statistics
  • CLI tools — init, doctor, uninstall