Skip to main content
Version: 1.x

Function: registerUI5Matcher()

registerUI5Matcher(name, matcherFn): void

Registers a custom UI5 matcher for use with expect(control).toXxx().

Parameters

name

string

The expect() method name (must start with 'to').

matcherFn

UI5MatcherFn

The matcher function (use createUI5Matcher to create one).

Returns

void

Intent

Allow users to extend Praman's assertion vocabulary with domain-specific matchers that use the same semantics as built-in matchers.

Remarks

Matchers must be registered before the Playwright worker initializes (typically in a playwright.config.ts global setup or a test file's top-level scope). The name must start with to (Playwright convention).

After the fixture calls applyAll(), the registry is frozen and no further registrations are accepted.

Example

import { createUI5Matcher, registerUI5Matcher } from 'playwright-praman';

const checkUI5Icon = createUI5Matcher<[string]>(
async (page, controlId, expected) => {
const actual = await getControlProperty(page, controlId, 'icon');
return {
pass: actual === expected,
message: () => `Expected icon '${expected}', got '${String(actual)}'`,
};
},
);

registerUI5Matcher('toHaveUI5Icon', checkUI5Icon);

// Now usable in tests:
// await expect(page).toHaveUI5Icon('sap-icon://add');