Marco Blessing
2422afbd8f
- 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.
54 lines
2.1 KiB
PowerShell
54 lines
2.1 KiB
PowerShell
#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
|
|
}
|
|
}
|
|
}
|