Improve accessibility of playwright fixture documentation (#34087)

* Improve accessibility of playwright fixture documentation

Empirically. by pulling the type definitions for the playwright fixtures out to
a type alias, we get better documentation for those fixtures.

* Exclude playwright-common from coverage checks
This commit is contained in:
Richard van der Hoff
2026-07-02 11:18:14 +00:00
committed by GitHub
parent f354453cab
commit f93f68056a
5 changed files with 16 additions and 18 deletions
@@ -9,14 +9,16 @@ Please see LICENSE files in the repository root for full details.
import { test as base } from "@playwright/test";
import { AxeBuilder } from "@axe-core/playwright";
// This fixture is useful for simple component library tests that won't want any extra services like a homeserver, so we
// explicitly avoid pulling anything more than playwright's base fixtures in.
export const test = base.extend<{
export type TestFixtures = {
/**
* AxeBuilder instance for the current page
*/
axe: AxeBuilder;
}>({
};
// This fixture is useful for simple component library tests that won't want any extra services like a homeserver, so we
// explicitly avoid pulling anything more than playwright's base fixtures in.
export const test = base.extend<TestFixtures>({
axe: async ({ page }, use) => {
const builder = new AxeBuilder({ page });
await use(builder);
@@ -14,7 +14,7 @@ import { test as base } from "./services.js";
*/
const LEFT_PANEL_WIDTH = "368.6875px";
export const test = base.extend<{
export type TestFixtures = {
/**
* Whether the left panel should have its width fixed.
* This is done because the library that we use for rendering collapsible
@@ -25,7 +25,9 @@ export const test = base.extend<{
* behaviour.
*/
lockLeftPanelWidth: boolean;
}>({
};
export const test = base.extend<TestFixtures>({
lockLeftPanelWidth: true,
page: async ({ lockLeftPanelWidth, page }, use) => {
const listener = async (page: Page) => {
@@ -41,7 +41,7 @@ export async function populateLocalStorageWithCredentials(page: Page, credential
);
}
export const test = base.extend<{
export interface TestFixtures {
/**
* The displayname to use for the user registered in {@link #credentials}.
*
@@ -71,7 +71,9 @@ export const test = base.extend<{
* app.
*/
user: Credentials;
}>({
}
export const test = base.extend<TestFixtures>({
displayName: undefined,
// We don't directly depend upon the `context` fixture, but we do need to make sure that it has been run
-10
View File
@@ -68,16 +68,6 @@ export interface TestFixtures {
labsFlags: string[];
disablePresence: boolean;
/**
* Whether the left panel should have its width fixed.
* This is done because the library that we use for rendering collapsible
* panels uses math to calculate the width which can sometimes leads to +/-1px
* difference. While this does not matter to the user, it can lead to screenshot
* tests failing.
* Defaults to true, should be set to false via {@link base.use} when you want to test the collapse
* behaviour.
*/
lockLeftPanelWidth: boolean;
}
export const test = base.extend<TestFixtures>({
+2
View File
@@ -60,6 +60,8 @@ export default defineConfig({
"**/src/test/**",
// Exclude type definition files
"**/*.d.ts",
// Exclude playwright-common as it is just test utilities
"packages/playwright-common/**",
],
reporter: [["lcov"]],
},