Files
Win11Debloat/Tests/User-LookupHelpers.Tests.ps1

32 lines
1.3 KiB
PowerShell

BeforeAll {
$userProfileScriptPath = Join-Path $PSScriptRoot '..\Scripts\Helpers\Resolve-UserProfilePath.ps1'
. $userProfileScriptPath
}
Describe 'Normalize-UserLookupValue' {
It 'removes zero-width characters and collapses whitespace' {
Normalize-UserLookupValue -Value " domain\u$([char]0x200B)ser name " | Should -Be 'domain\user name'
}
It 'uses normalized, case-insensitive cache keys' {
Get-UserLookupCacheKey -Value ' DOMAIN\Alice ' | Should -Be 'domain\alice'
Get-UserLookupCacheKey -Value ' ' | Should -Be ''
}
It 'normalizes, filters, and de-duplicates lookup candidates' {
$result = Get-NormalizedLookupCandidates -Candidates @(' Alice ', '', 'alice', "Bob$([char]0x200B)")
$result | Should -HaveCount 3
$result[0] | Should -Be 'Alice'
$result[1] | Should -Be 'alice'
$result[2] | Should -Be 'Bob'
}
It 'escapes WQL literals and extracts local user-name segments' {
Escape-WqlString -Value "O'Brian" | Should -Be "O''Brian"
Get-LocalUserNameSegment -UserName 'CONTOSO\Alice' | Should -Be 'Alice'
Get-LocalUserNameSegment -UserName 'alice@contoso.com' | Should -Be 'alice'
Get-LocalUserNameSegment -UserName ' Alice ' | Should -Be 'Alice'
}
}