Skip to content

Add reusable Playwright test harness #2

Description

@gaelcolas

Summary

Add a reusable Playwright end-to-end test harness to this task module so Sampler-based repositories can run browser tests through the same build entry point and reporting conventions as their Pester tests.

Scope

  • Add a shipped InvokeBuild task file under source/Tasks and export it through a Task.* alias and AliasesToExport metadata.
  • Keep reusable helper logic in one-function-per-file module functions under source/Public or source/Private; do not add a sibling task PSM1.
  • Provide Pester 5 wrapper tasks for importing Pester, running Playwright wrappers, failing the build on test failures, and a convenient testUI workflow alias.
  • Support defaults-first configuration where invocation parameters override build.yaml, and build.yaml overrides module defaults.
  • Default test discovery to tests/playwright, with configurable run paths, tags, and excluded tags.
  • Write Pester NUnit XML results under output/playwright.
  • Document a Node Playwright harness using package.json, playwright.config.ts, and browser test folders such as tests/smoke.
  • Configure Playwright to retain traces, screenshots, and videos on failures and emit a JUnit result file under output/playwright.
  • Define how npm ci and the required Playwright browser installation are bootstrapped locally and in CI.
  • Keep secrets and target URLs environment-driven; no credentials should be committed.
  • Add unit tests for configuration conversion, path resolution, filtering, and failure propagation.
  • Add WikiSource documentation for consumer setup, configuration, task reference, output files, and CI integration.

Suggested task surface

  • Import_Pester_For_Playwright
  • Invoke_Playwright_Pester_Tests_v5
  • Fail_Build_If_Playwright_Tests_Failed
  • Playwright_Tests_Stop_On_Fail
  • testUI

Acceptance criteria

  • A consumer can add the module through RequiredModules.psd1, import its Task.* alias through ModuleBuildTasks, and run ./build.ps1 -Tasks testUI.
  • Missing configured test paths fail with a clear actionable error.
  • Playwright and Pester result files are generated in deterministic locations below output/playwright.
  • Browser diagnostics are retained on failures and can be uploaded as CI artifacts.
  • A failing browser test fails the InvokeBuild workflow.
  • The harness works on supported PowerShell and GitHub-hosted runner environments.
  • Public/private helper functions follow this repository's source layout and test conventions.
  • Documentation describes the complete setup without depending on repository-specific application details.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions