test(Connection): fix scoping of mocks

This commit is contained in:
Rodweil, Theodor 2023-08-06 16:35:01 +02:00
parent 6b393c0f96
commit 08eb8de842
No known key found for this signature in database
GPG key ID: F8BC1B0EB1F9CCF5

View file

@ -8,58 +8,75 @@ BeforeAll {
Describe 'Test-Connection' `
{
Context 'Parameterized' {
Context 'default' {
BeforeAll `
{
Mock -ModuleName 'Connection' Get-PersonalAccessToken {
'01234567890123456789'
}
}
It 'throws no exception' {
InModuleScope Connection {
Mock Get-PersonalAccessToken {'01234567890123456789'}
Mock Invoke-WebRequest {
return @{
Mock -ModuleName 'Connection' Invoke-WebRequest {
@{
'Content' = "{'type': 'known'}"
'StatusCode' = 200
}
}
Test-Connection -Host 'confluence.contoso.com'
}
Should -Invoke -CommandName 'Get-PersonalAccessToken' `
-ModuleName 'Connection' ` `
-Exact `
-Times 1
Should -Invoke -CommandName 'Invoke-WebRequest' `
-ModuleName 'Connection' ` `
-Exact `
-Times 1
}
It 'detects anonymous authentication' {
InModuleScope Connection {
Mock Get-PersonalAccessToken {'01234567890123456789'}
Mock Invoke-WebRequest {
return @{
Mock -ModuleName 'Connection' Invoke-WebRequest {
@{
'Content' = "{'type': 'anonymous'}"
'StatusCode' = 200
}
}
{Test-Connection -Host 'confluence.contoso.com'} | Should -Throw
}
Should -Invoke -CommandName 'Get-PersonalAccessToken' `
-ModuleName 'Connection' ` `
-Exact `
-Times 1
Should -Invoke -CommandName 'Invoke-WebRequest' `
-ModuleName 'Connection' ` `
-Exact `
-Times 1
}
It 'detects non 200 status codes' {
InModuleScope Connection {
Mock Get-PersonalAccessToken {'01234567890123456789'}
Mock Invoke-WebRequest {
return @{
Mock -ModuleName 'Connection' Invoke-WebRequest {
@{
'Content' = "{'type': 'anonymous'}"
'StatusCode' = 500
}
}
{Test-Connection -Host 'confluence.contoso.com'} | Should -Throw
}
Should -Invoke -CommandName 'Get-PersonalAccessToken' `
-ModuleName 'Connection' ` `
-Exact `
-Times 1
Should -Invoke -CommandName 'Invoke-WebRequest' `
-ModuleName 'Connection' ` `
-Exact `
-Times 1
}
}
}