@manufac/general-tests
v0.1.1
Published
A library for general tests for landing pages
Downloads
569
Keywords
Readme
@manufac/general-tests
Shared Playwright regression suite for landing pages, built from the Landing Page Test Plan. It ships generic, page-agnostic checks (page load, responsive layout, forms, CTAs/links, media, orientation, touch targets, etc.) that any landing-page app in the monorepo can run against its own pages.
See CHANGELOG.md for release notes.
Consuming from an app
Add it as a normal dependency, pinned to the version you want to consume:
npm install @manufac/[email protected]{
"dependencies": {
"@manufac/general-tests": "0.0.1-alpha"
}
}Then wire it into the app's playwright.config.ts using the project-builder helpers:
import { defineConfig } from "@playwright/test";
import { Breakpoints, createProject } from "@manufac/general-tests/config/projects.js";
export default defineConfig({
use: {
baseURL: "http://localhost:8080",
},
projects: [
createProject({
name: "Desktop Chrome",
device: "Desktop Chrome",
configuration: { projectType: "desktop", breakpoint: Breakpoints.Desktop },
}),
createProject({
name: "Desktop Safari",
device: "Desktop Safari",
configuration: { projectType: "desktop", breakpoint: Breakpoints.Desktop },
}),
createProject({
name: "Desktop Firefox",
device: "Desktop Firefox",
configuration: { projectType: "desktop", breakpoint: Breakpoints.Desktop },
}),
createProject({
name: "Mobile Safari",
device: "iPhone 12",
configuration: { projectType: "mobile", breakpoint: Breakpoints.MobileM },
}),
createProject({
name: "Mobile Chrome",
device: "Pixel 5",
configuration: { projectType: "mobile", breakpoint: Breakpoints.MobileM },
}),
],
webServer: {
command: "npm run start",
url: "http://localhost:8080",
reuseExistingServer: !process.env.CI,
},
});createProject({ name, device, configuration })builds a Playwright project for the given device.configuration.projectType: "desktop"runs theshared+desktop-onlyspecs, and requiresconfiguration.breakpoint: Breakpoints.Desktop(1440x900).configuration.projectType: "mobile"runs theshared+mobile-onlyspecs, and requiresconfiguration.breakpoint: Breakpoints.MobileM(390x844).
By default every spec runs against /. To point a project at a different page, override the targetPage fixture option:
createProject({
name: "Desktop Chrome — pricing",
device: "Desktop Chrome",
configuration: { projectType: "desktop", breakpoint: Breakpoints.Desktop },
}),
// then, in that project's `use`:
use: { targetPage: "/pricing" }