⚙️ [Maintenance]: Adopt Process-PSModule v6.1.4 and require Pester 6.x in tests#13
⚙️ [Maintenance]: Adopt Process-PSModule v6.1.4 and require Pester 6.x in tests#13Marius Storhaug (MariusStorhaug) wants to merge 3 commits into
Conversation
No Significant Changes DetectedThis PR does not contain changes to files that would trigger a new release:
Build, test, and publish stages will be skipped for this PR. If you believe this is incorrect, please verify that your changes are in the correct locations. |
There was a problem hiding this comment.
Pull request overview
This PR adds an explicit PowerShell #Requires -Modules declaration to the Pester test script so the tests only run when Pester 6.x is available, aligning test discovery/runtime with the intended dependency constraints.
Changes:
- Add
#Requires -Modules @{ ModuleName = 'Pester'; ModuleVersion = '6.0.0'; MaximumVersion = '6.*'; GUID = 'a699dea5-2c73-4616-a270-1f7abb777e71' }at the top of the test file to enforce Pester 6.x at discovery time. - Insert a blank line after the
#Requiresdirective, keeping the rest of the test file unchanged.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Super-linter summary
All files and directories linted successfully For more information, see the GitHub Actions workflow run Powered by Super-linter |
The GUID pins module identity (precise pinning), a stricter control than the lock-to-major risk appetite. Keep only the version range.
No Significant Changes DetectedThis PR does not contain changes to files that would trigger a new release:
Build, test, and publish stages will be skipped for this PR. If you believe this is incorrect, please verify that your changes are in the correct locations. |
Super-linter summary
All files and directories linted successfully For more information, see the GitHub Actions workflow run Powered by Super-linter |
No Significant Changes DetectedThis PR does not contain changes to files that would trigger a new release:
Build, test, and publish stages will be skipped for this PR. If you believe this is incorrect, please verify that your changes are in the correct locations. |
Super-linter summary
All files and directories linted successfully For more information, see the GitHub Actions workflow run Powered by Super-linter |
# Conflicts: # .github/workflows/Process-PSModule.yml
|
Closing because the exact PR head is contained in |
Domeneshop users gain authenticated access to the module's domain, DNS, forwarding, DDNS, and invoice capabilities through a consolidated pre-1.0 release candidate. ## New: Domeneshop API capabilities The module adds Context-based credential handling and commands for querying domains, managing DNS records and forwards, updating DDNS, and retrieving invoices. Command safety, validation, focused tests, and command-group documentation are included in the release candidate. ## New: Guided credential setup Running `Connect-DomeneshopAccount` without `-Secret` or its `-Key` alias opens the Domeneshop API settings page and securely prompts for the secret. If a browser is unavailable, the command warns and continues to the secure prompt. Explicit string and SecureString inputs remain supported, and `-WhatIf` does not open the browser, prompt, or change stored contexts. ## Changed: Release tooling and documentation The release candidate adopts Process-PSModule v6.1.13, enforces Pester 6.x across every test file, consolidates public command tests into root-level group suites, migrates the generated documentation site to Zensical, replaces README placeholders with the standard module landing page, and links each public command's help to its canonical generated documentation. --- <details> <summary>Technical details</summary> - Integrated PR #11, PR #13, the preserved pull ref for PR #12, PR #14, and stacked PR #15 in the requested order; each exact source head is verified as an ancestor of this branch. All five source PRs are now closed and their remote branches deleted. - Resolved the PR #11/PR #13 workflow overlap in favor of PR #13's Process-PSModule v6.1.4 baseline, then updated the consolidated release to latest Process-PSModule v6.1.13 at immutable commit `fb1bdb8fefd243292f779d2a856a38db6fe6daf4`. - Migrated `.github/mkdocs.yml` to `.github/zensical.toml`, satisfying v6.1.13's Zensical-only documentation pipeline. - PR #14 was merged explicitly before PR #15; PR #15's existing ancestry was retained, so only its four standards-hardening commits were introduced by the later merge. - Added an integration commit applying PR #13's exact Pester 6.x requirement to the command tests introduced by PR #15. - Uses the Standard test-layout profile: grouped public commands are covered by root-level `tests/<Group>.Tests.ps1` suites (`Auth`, `Ddns`, `Dns`, `Domains`, `Forwards`, and `Invoices`), while ungrouped and cross-cutting suites remain separate at the root. Deterministic layout coverage verifies every public command has a matching `Describe` block in its expected suite. - Added interactive credential setup as a separate micro-commit, including the exact `https://domene.shop/admin?view=api` launch, `Read-Host -AsSecureString`, `Key` alias, side-effect-free `-WhatIf` behavior, and a warning-only browser fallback that preserves secure prompting. - Added group-aware canonical links first in all 14 public function help blocks: `https://psmodule.io/Domeneshop/Functions/<FunctionName>/` for ungrouped commands and `https://psmodule.io/Domeneshop/Functions/<Group>/<FunctionName>/` for grouped commands. Deterministic tests require the exact trailing-slash route and reject missing, incorrect, or secondary-first links. - Linked clearly owned private Auth helpers to the published public commands they support while retaining useful secondary Context links. - Requires PowerShell 7.6, the latest LTS. The generated module manifest declares `PowerShellVersion = 7.6` and `CompatiblePSEditions = Core`; legacy Windows PowerShell compatibility branches are intentionally excluded. - Rejects whitespace-only API tokens, DDNS values, DNS filters, domain filters, forward hosts, and smoke-test names before state changes or URI construction. - Addressed generated-document lint, reserved context names, empty secrets, missing context diagnostics, strict WhatIf mutation boundaries, portable test paths, output contracts, and automated-review findings discovered during integration. - Local validation: 83 Pester tests pass, PSScriptAnalyzer reports zero findings across `src` and `tests`, and `git diff --check` passes. - Exact-head Process-PSModule v6.1.13 CI succeeds on `9834688` (run `30180761797`), including Build-Site and all module-local suites across Linux, macOS, and Windows. - PSModule/docs PR #86 and Process-PSModule PR #419 are merged, making latest-LTS support and ternary allowance effective on their default branches. </details> <details> <summary>Relevant issues (or links)</summary> - Fixes #2 - #11 - #12 - #13 - #14 - #15 - PSModule/docs#86 - PSModule/Process-PSModule#419 </details> --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
This module now runs on the latest Process-PSModule automation (v6.1.4) and pins its test suite to Pester 6, so continuous integration uses the current build, test, and publish pipeline and the tests fail fast if Pester 6 is ever missing.
Changed: CI runs on Process-PSModule v6.1.4
The reusable workflow pin moves to v6.1.4 from the module's previously pinned v5 release, adopting the current pipeline, including the Pester 6 test runner and the consolidated
TestDatasecret model. No caller changes are required — the existingsecretswiring keeps passing everything the pipeline needs.Changed: Tests require Pester 6.x
Every test file now declares the Pester 6 requirement, so the suite always resolves Pester 6 and fails with a clear message if only an older Pester is available, instead of silently running on it.
Technical Details
.github/workflows/Process-PSModule.yml: pin bumped toworkflow.yml@da180bac16b13bfbcdf08b2e4e221b5b49e5ff28 # v6.1.4.tests/*.Tests.ps1: added#Requires -Modules @{ ModuleName = 'Pester'; ModuleVersion = '6.0.0'; MaximumVersion = '6.*' }.Shouldassertions are left unchanged. Pester 6 is backward-compatible, so converting to the newShould-*syntax is intentionally out of scope for this maintenance change.