@ -1,6 +1,7 @@
<#
<#
Tests repository files that the build and GitHub use , without a build : every packages . config lists the AlphaFS
Tests repository files that the build and GitHub use , without a build : every packages . config lists the AlphaFS
version that the projects reference and ship , and Dependabot keeps the actions of the CI workflow up to date .
version that the projects reference and ship , Dependabot keeps the actions of the CI workflow up to date , and the
manifest and the README describe the release .
#>
#>
[ Diagnostics . CodeAnalysis . SuppressMessageAttribute (
[ Diagnostics . CodeAnalysis . SuppressMessageAttribute (
'PSUseDeclaredVarsMoreThanAssignments' , '' , Justification = 'Pester shares variables between blocks.'
'PSUseDeclaredVarsMoreThanAssignments' , '' , Justification = 'Pester shares variables between blocks.'
@ -75,3 +76,29 @@ Describe 'Dependabot configuration' {
$raw | Should -Match '(?m)^\s+groups:\s*\n\s+[\w-]+:\s*\n\s+patterns:\s*\n\s+-\s*["'']\*["'']\s*$'
$raw | Should -Match '(?m)^\s+groups:\s*\n\s+[\w-]+:\s*\n\s+patterns:\s*\n\s+-\s*["'']\*["'']\s*$'
}
}
}
}
Describe 'Release metadata' {
BeforeAll {
$repositoryPath = Join-Path -Path $PSScriptRoot -ChildPath '..'
$manifest = Import-PowerShellDataFile -Path ( Join-Path -Path $repositoryPath -ChildPath 'NTFSSecurity\NTFSSecurity.psd1' )
$version = $manifest . ModuleVersion
if ( $manifest . PrivateData . PSData . Prerelease ) {
$version = '{0}-{1}' -f $version , $manifest . PrivateData . PSData . Prerelease
}
}
# Before 5.0.0-rc2, the description named Windows PowerShell, although the module supports PowerShell 7 as well.
It 'Should describe the module without naming one PowerShell edition' {
$manifest . Description | Should -BeExactly 'PowerShell module for managing file and folder security on NTFS volumes'
}
# The PowerShell Gallery doesn't accept a version twice, and CI published 5.0.0-rc1 on 2026-10-04.
It 'Should not reuse the published version 5.0.0-rc1' {
$version | Should -Not -Be '5.0.0-rc1'
}
It 'Should not name a prerelease version in the README, which outlives the release' {
Get-Content -LiteralPath ( Join-Path -Path $repositoryPath -ChildPath 'Docs\README.md' ) -Raw |
Should -Not -Match '\d+\.\d+\.\d+-[A-Za-z]'
}
}