SynEdgy / SynEdgy/Sampler.PowerShellUniversalTasks

Add reusable Playwright test harness

Open
#2 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
PowerShell
Stars
1
Forks
0
PR merge metrics
No merged PRs in 30d

Description

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.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing the existing Pester task conventions and the source/Tasks, source/Public, and source/Private layouts. Trace module exports through RequiredModules.psd1, Task.* aliases, and AliasesToExport, then inspect build.yaml and the requested Playwright files and output paths. Done means the testUI workflow, configuration and failure behavior, diagnostics, unit tests, CI setup, and WikiSource documentation meet the listed acceptance criteria.

Written by the indexing model from the issue text.

Assessment

Tech stack
playwright, powershell, typescript
Domain
build-system, ci-cd, documentation, testing
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.