SynEdgy / SynEdgy/Sampler.PowerShellUniversalTasks
Add reusable Playwright test harness
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/Tasksand export it through aTask.*alias andAliasesToExportmetadata. - Keep reusable helper logic in one-function-per-file module functions under
source/Publicorsource/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
testUIworkflow alias. - Support defaults-first configuration where invocation parameters override
build.yaml, andbuild.yamloverrides 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 astests/smoke. - Configure Playwright to retain traces, screenshots, and videos on failures and emit a JUnit result file under
output/playwright. - Define how
npm ciand 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_PlaywrightInvoke_Playwright_Pester_Tests_v5Fail_Build_If_Playwright_Tests_FailedPlaywright_Tests_Stop_On_FailtestUI
Acceptance criteria
- A consumer can add the module through
RequiredModules.psd1, import itsTask.*alias throughModuleBuildTasks, 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
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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