Bug/260 setting max pester version below 6#261
Merged
stiwicourage merged 7 commits intoJul 15, 2026
Conversation
…andling - `Invoke-NovaTest`, `Test-NovaBuild`, and `% nova test` now only use Pester versions from `5.7.1` to `5.10.0`, failing with a clear error for unsupported `Pester 6.x`. - Updated documentation to reflect the new Pester version requirements.
- Reuse already loaded supported Pester 5.x version before switching - Ensure early failure with clear error when unsupported Pester 6.x is present
- Introduced new functions for command generation and execution - Improved error handling for validation command failures - Updated logging to capture command execution details
- resolve script path and load content once for efficiency - update test assertions to use loaded script content
- resolve script path and load content once for efficiency - update test assertions to use loaded script content
- replace output joining with Get-NovaPublicCommandIntegrationOutputText for better formatting - normalize whitespace in output assertions for consistency
Contributor
Dependency Review✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.Scanned FilesNone |
…rModuleVersionSupported - implement default value handling in Get-NovaPesterVersionText - validate null candidate version in Test-NovaPesterModuleVersionSupported
There was a problem hiding this comment.
Gates Passed
6 Quality Gates Passed
See analysis details in CodeScene
Quality Gate Profile: Pay Down Tech Debt
Install CodeScene MCP: safeguard and uplift AI-generated code. Catch issues early with our IDE extension and CLI tool.
There was a problem hiding this comment.
Code Coverage Gates Passed
Overall Coverage: 99.8%
(required = 95%)
New & Changed Code Coverage: 100%
(required = 99%)
Review details by gate
-
Overall Coverage
- Pass/Fail Reason:
The overall coverage gate was checked for all code and meets the goal: 99.8% covered >= threshold = 95% - Action:
You have 294 files with a sum of 4170 covered and 7 uncovered lines of code.
- Pass/Fail Reason:
-
New & Changed Code Coverage
- Pass/Fail Reason:
New or changed code meets coverage goal: 100% covered >= threshold = 99% - Action:
You modified 2 files, and covered 76 added/modified lines of code.
- Pass/Fail Reason:
stiwicourage
added a commit
that referenced
this pull request
Jul 15, 2026
* chore: prepare develop for next prerelease * fix: update project description for clarity and consistency * fix: update MaximumVersion for Pester module in project.json * Bug/260 setting max pester version below 6 (#261) * fix(#260): enforce supported Pester version range and improve error handling - `Invoke-NovaTest`, `Test-NovaBuild`, and `% nova test` now only use Pester versions from `5.7.1` to `5.10.0`, failing with a clear error for unsupported `Pester 6.x`. - Updated documentation to reflect the new Pester version requirements. * fix(#260): improve Pester version handling in Nova test workflows - Reuse already loaded supported Pester 5.x version before switching - Ensure early failure with clear error when unsupported Pester 6.x is present * fix(#260): enhance Nova module validation commands and logging - Introduced new functions for command generation and execution - Improved error handling for validation command failures - Updated logging to capture command execution details * fix(#260): improve run.ps1 script content handling in tests - resolve script path and load content once for efficiency - update test assertions to use loaded script content * fix(#260): improve run.ps1 script content handling in tests - resolve script path and load content once for efficiency - update test assertions to use loaded script content * fix(#260): enhance output handling in integration tests - replace output joining with Get-NovaPublicCommandIntegrationOutputText for better formatting - normalize whitespace in output assertions for consistency * fix(#260): add tests for Get-NovaPesterVersionText and Test-NovaPesterModuleVersionSupported - implement default value handling in Get-NovaPesterVersionText - validate null candidate version in Test-NovaPesterModuleVersionSupported
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Pesterversions from5.7.1through5.10.0, fail early when only unsupportedPester 6.xversions are available, and reuse an already loaded supportedPester 5.xmodule before selecting another installation.scripts/build/ci/Invoke-NovaModuleToolsCI.ps1now runsInvoke-NovaTestandTest-NovaBuildin freshpwshsessions against the built module so CI exercises the same module boundary that GitHub Actions uses and avoids thePesterassembly-loader conflict seen in the failing workflow.Pester 6.xinstalls or trip thePesterloader after importing an installed Gallery copy ofNovaModuleTools, building the local module, and then switchingPesterversions in the same session.Affected area
novaCLI or command routingproject.jsonhandlingREADME.md,CONTRIBUTING.md, repository workflow docs)docs/*.html)docs/NovaModuleTools/en-US/*.md)src/resources/example/project.json, workflow dependencies, release tooling)Review guidance
src/private/quality/GetNovaTestWorkflowContext.ps1andsrc/private/quality/InvokeNovaTestWorkflow.ps1to review the supported-Pesterselection/import flow and how the chosen module specification is carried into the Pester execution host.scripts/build/ci/Invoke-NovaModuleToolsCI.ps1to see the fresh-session CI validation change that prevents the mixed-session loader issue.tests/private/quality/,tests/public/InvokeNovaTest.Integration.Tests.ps1,tests/public/TestNovaBuild.Integration.Tests.ps1,tests/TestHelpers/PublicCommandIntegration.ps1, andtests/Invoke-NovaModuleToolsCI.Tests.ps1for the regression coverage and CI helper assertions.Pesterwindow is intentionally strict (5.7.1through5.10.0). If Nova later adoptsPester 6.x, the selection logic, docs, and regression tests should be updated together rather than widened implicitly.Validation
Invoke-NovaBuildInvoke-NovaTestTest-NovaBuild./scripts/build/Invoke-ScriptAnalyzerCI.ps1./scripts/build/ci/Invoke-NovaModuleToolsCI.ps1% nova build,% nova test,% nova merge,% nova deploy,% nova publish,% nova release,% nova update,% nova notification, or% nova initas relevant)Validation notes:
Documentation and release follow-up
README.mdreviewed and updated if contributor workflow, architecture, CI, release, or automation changedCONTRIBUTING.mdreviewed; no update was needed because the contributor expectations and review flow did not changeCHANGELOG.mdreviewed and updated if the change matters to users, maintainers, or contributorsRELEASE_NOTE.mdreviewed and updated if the change affects public cmdlet usage, CLI usage, configuration semantics, or migration expectationsdocs/NovaModuleTools/en-US/help updated if a public command or CLI behavior changeddocs/*.htmlupdated if end-user workflows or examples changedsrc/resources/example/reviewed and updated if the real-world project layout, package model, or upload workflow changedMaintainability, compatibility, and risk
Risk, rollout, or rollback notes:
Important
Do not use a public pull request to disclose a vulnerability before coordinated handling.
Use the private reporting path in
SECURITY.mdfor new security issues.