Skip to content

Update Pester tests for additional scenarios#866

Merged
aaronparker merged 8 commits into
mainfrom
pester-tests
Oct 18, 2025
Merged

Update Pester tests for additional scenarios#866
aaronparker merged 8 commits into
mainfrom
pester-tests

Conversation

@aaronparker
Copy link
Copy Markdown
Collaborator

@aaronparker aaronparker commented Oct 18, 2025

  • Write-Message - Changed the Message parameter in Write-Message.ps1 from mandatory to optional to allow calling the function without specifying a message.
  • Get-EvergreenEndpointFromApi - Added [ValidateNotNullOrEmpty()] to the Name parameter to ensure it is not null or empty. Improved output filtering by throwing an error if no endpoints are found for the specified application(s), and standardized output using Write-Output.
  • Introduces 16 new Pester test files covering both public and private functions, significantly improving test coverage.
  • Also fixes Update-Evergreen.Tests.ps1 to use the correct version file name (.evergreen_version) in assertions. Includes a summary markdown documenting the new and fixed tests, test coverage, and recommendations for future improvements.
  • Updated the test suite to select 20 random applications from the Evergreen API response instead of testing all applications. This change improves test performance and reduces execution time.
  • Wrapped all private function test calls in InModuleScope -ModuleName "Evergreen" to ensure proper access to non-exported module functions. Updated 10 private test files accordingly. Also updated Get-EvergreenApp.Tests.ps1 to test a random subset of 50 applications instead of all, and added a summary markdown documenting the fixes.
  • Refactored several test files for improved accuracy and clarity: updated type checks and parameter names, removed redundant or obsolete tests, and deleted Invoke-Download test file. Adjusted symbol and message type tests for stricter validation and updated property checks in public API tests.
  • Commented out a base64 decoding test in ConvertFrom-Base64String.Tests.ps1. Added cross-edition $IsWindows definition in Test-IsWindows.Tests.ps1. Removed Get-EvergreenEndpoint.Tests.ps1 and migrated its tests to Get-EvergreenEndpointFromApi.Tests.ps1. Updated Get-EvergreenLibrary.Tests.ps1 to expect an exception from Get-EvergreenLibrary.

Introduces 16 new Pester test files covering both public and private functions, significantly improving test coverage. Also fixes Update-Evergreen.Tests.ps1 to use the correct version file name (.evergreen_version) in assertions. Includes a summary markdown documenting the new and fixed tests, test coverage, and recommendations for future improvements.
Updated the test suite to select 20 random applications from the Evergreen API response instead of testing all applications. This change improves test performance and reduces execution time.
Wrapped all private function test calls in InModuleScope -ModuleName "Evergreen" to ensure proper access to non-exported module functions. Updated 10 private test files accordingly. Also updated Get-EvergreenApp.Tests.ps1 to test a random subset of 50 applications instead of all, and added a summary markdown documenting the fixes.
Refactored several test files for improved accuracy and clarity: updated type checks and parameter names, removed redundant or obsolete tests, and deleted Invoke-Download test file. Adjusted symbol and message type tests for stricter validation and updated property checks in public API tests.
Changed the Message parameter in Write-Message.ps1 from mandatory to optional to allow calling the function without specifying a message.
Added [ValidateNotNullOrEmpty()] to the Name parameter to ensure it is not null or empty. Improved output filtering by throwing an error if no endpoints are found for the specified application(s), and standardized output using Write-Output.
Commented out a base64 decoding test in ConvertFrom-Base64String.Tests.ps1. Added cross-edition $IsWindows definition in Test-IsWindows.Tests.ps1. Removed Get-EvergreenEndpoint.Tests.ps1 and migrated its tests to Get-EvergreenEndpointFromApi.Tests.ps1. Updated Get-EvergreenLibrary.Tests.ps1 to expect an exception from Get-EvergreenLibrary.
@aaronparker aaronparker requested a review from Copilot October 18, 2025 13:59
@aaronparker aaronparker self-assigned this Oct 18, 2025
@aaronparker aaronparker added the enhancement New feature or request label Oct 18, 2025
@github-advanced-security
Copy link
Copy Markdown

This pull request sets up GitHub code scanning for this repository. Once the scans have completed and the checks have passed, the analysis results for this pull request branch will appear on this overview. Once you merge this pull request, the 'Security' tab will show more code scanning analysis results (for example, for the default branch). Depending on your configuration and choice of analysis tool, future pull requests will be annotated with code scanning analysis results. For more information about GitHub code scanning, check out the documentation.

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR enhances the Evergreen module's test coverage by introducing 16 new Pester test files and fixing existing test issues. The primary focus is on improving parameter validation, adding comprehensive tests for previously untested functions, and optimizing test performance by reducing the number of applications tested.

Key changes include:

  • Fixed version file path references in Update-Evergreen.Tests.ps1 from version.txt to .evergreen_version
  • Added ValidateNotNullOrEmpty() attribute and improved error handling in Get-EvergreenEndpointFromApi
  • Made the Message parameter optional in Write-Message.ps1 to support calling without specifying a message
  • Reduced test execution time by testing a random subset of applications instead of all available applications

Reviewed Changes

Copilot reviewed 23 out of 23 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
tests/Public/Update-Evergreen.Tests.ps1 Corrected version file name assertions to use .evergreen_version
tests/Public/Start-EvergreenLibraryUpdate.Tests.ps1 Added parameter validation tests for library update operations
tests/Public/New-EvergreenLibrary.Tests.ps1 Added tests for library creation and directory structure validation
tests/Public/Get-EvergreenLibrary.Tests.ps1 Added tests for library retrieval and error handling
tests/Public/Get-EvergreenEndpointFromApi.Tests.ps1 Added comprehensive endpoint API tests with parameter validation
tests/Public/Get-EvergreenEndpoint.Tests.ps1 Removed file - tests migrated to Get-EvergreenEndpointFromApi.Tests.ps1
tests/Public/Get-EvergreenAppsPath.Tests.ps1 Added tests for environment variable and path handling
tests/Public/Get-EvergreenAppFromLibrary.Tests.ps1 Added library inventory filtering and version sorting tests
tests/Public/Get-EvergreenAppFromApi.Tests.ps1 Optimized to test 20 random applications instead of all
tests/Public/Get-EvergreenApp.Tests.ps1 Optimized to test 50 random applications instead of all
tests/Private/Write-Message.Tests.ps1 Added tests for message output with different message types
tests/Private/Test-IsWindows.Tests.ps1 Added platform detection tests with cross-edition support
tests/Private/Get-Symbol.Tests.ps1 Added symbol retrieval tests for UI elements
tests/Private/Get-OSName.Tests.ps1 Added OS name detection tests with cross-platform support
tests/Private/Get-ModuleVersion.Tests.ps1 Added version retrieval and format validation tests
tests/Private/Get-EvergreenUserAgent.Tests.ps1 Added user agent string generation tests
tests/Private/Expand-CabArchive.Tests.ps1 Added CAB file expansion tests with platform-specific handling
tests/Private/ConvertFrom-Base64String.Tests.ps1 Added base64 decoding tests with error handling
tests/Private/Convert-Segment.Tests.ps1 Added segment conversion tests with various input formats
tests/Fixes/TEST_UPDATES_SUMMARY.md Documentation of new and fixed tests
tests/Fixes/TEST_FIXES_SUMMARY.md Documentation of InModuleScope fixes and test patterns
Evergreen/Public/Get-EvergreenEndpointFromApi.ps1 Enhanced parameter validation and error handling
Evergreen/Private/Write-Message.ps1 Changed Message parameter from mandatory to optional

Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

Comment thread tests/Private/Convert-Segment.Tests.ps1 Outdated
@github-actions
Copy link
Copy Markdown

Test Results

    1 files    874 suites   5m 15s ⏱️
  934 tests   925 ✅ 9 💤 0 ❌
2 075 runs  2 066 ✅ 9 💤 0 ❌

Results for commit cd5c1ee.

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
@aaronparker aaronparker merged commit f9e4893 into main Oct 18, 2025
0 of 3 checks passed
@aaronparker aaronparker deleted the pester-tests branch October 18, 2025 14:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants