Publish version 0.2.1.X (#18)
- fix pester test execution order in vscode test task. - fix coveralls.io link in bagde. - skip coverage report creation for PR triggered builds - update docs - Connection type SCP added for `Connect-To` and `Disconnect-From`. ## Internal Changes - pester tests now don't need to dotsource other public functions from the same module (fixes #17 ) - helper and private functions stilll needs to be dotsourced. - basic module tests added - pester tests for `Resolve-Dependency` added - Wrapper function `Get-ModuleBase` added. This enables mocking in tests.
This commit is contained in:
53
tests/Helper/01_Resolve-Dependency.Tests.ps1
Normal file
53
tests/Helper/01_Resolve-Dependency.Tests.ps1
Normal file
@ -0,0 +1,53 @@
|
||||
#region HEADER
|
||||
$here = Split-Path -Parent $MyInvocation.MyCommand.Path
|
||||
# $RepoRoot = (Get-Item -Path $here).Parent.Parent.FullName
|
||||
$RepoRoot = (Get-GitDirectory).replace('\.git', '')
|
||||
$sut = (Split-Path -Leaf $MyInvocation.MyCommand.Path) -replace '\.Tests\.', '.'
|
||||
$sut = $sut -replace "\d{2}`_", ''
|
||||
$suthome = (Get-ChildItem -Path $RepoRoot -Exclude ".\tests\" -Filter $sut -Recurse).FullName
|
||||
# Skip try loading the source file if it doesn't exists.
|
||||
If ($suthome.Length -gt 0) {
|
||||
. $suthome
|
||||
}
|
||||
Else {
|
||||
Write-Warning ("Could not find source file {0}" -f $sut)
|
||||
}
|
||||
|
||||
# load additional functions defined in the repository. Replace the expression <FunctionName>.
|
||||
. (Get-ChildItem -Path $RepoRoot -Filter "Get-ModuleBase.ps1" -Recurse).FullName
|
||||
. (Get-ChildItem -Path $RepoRoot -Filter "Test-Module.ps1" -Recurse).FullName
|
||||
|
||||
#endregion HEADER
|
||||
|
||||
Describe "Resolve-Dependency" {
|
||||
Context "Basic syntax check" {
|
||||
Mock Get-ModuleBase {return "{0}\resources" -f $PWD}
|
||||
Mock Test-Module {return $true}
|
||||
It "Test1: Should not throw" {
|
||||
{ Resolve-Dependency -Name 'foobar2000' } | Should -Not -Throw
|
||||
}
|
||||
It "Test2: Output type should be bool" {
|
||||
Resolve-Dependency -Name 'foobar2000' | Should -BeOfType bool
|
||||
}
|
||||
}
|
||||
Context "Enforce Error" {
|
||||
# Return incorrect module base to enforce there is no config file.
|
||||
Mock Get-ModuleBase {return "C:\"}
|
||||
It "Missing dependency file should not cause an error" {
|
||||
{ Resolve-Dependency -Name 'awesome'} | Should -Not -Throw
|
||||
}
|
||||
|
||||
It "Missing dependency file should return false" {
|
||||
Resolve-Dependency -Name 'awesome' | Should -Be $false
|
||||
}
|
||||
}
|
||||
Context "Testing input variations" {
|
||||
Mock Get-ModuleBase {return "{0}\resources" -f $PWD}
|
||||
It "Should return true if all given dependencies exist" {
|
||||
Resolve-Dependency -Name 'Existing' | Should -Be $true
|
||||
}
|
||||
It "Mixed results should return false" {
|
||||
Resolve-Dependency -Name 'PSGetMixed' | Should -Be $false
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user