tests/general/Unit.Tests.ps1
$script:ModuleName = 'VSCodeBackup' # Removes all versions of the module from the session before importing Get-Module $ModuleName | Remove-Module $ModuleBase = Split-Path -Parent $MyInvocation.MyCommand.Path # For tests in .\Tests subdirectory if ((Split-Path $ModuleBase -Leaf) -eq 'Tests') { $ModuleBase = Split-Path $ModuleBase -Parent } ## this variable is for the VSTS tasks and is to be used for refernecing any mock artifacts $Env:ModuleBase = $ModuleBase Import-Module $ModuleBase\$ModuleName.psd1 -PassThru -ErrorAction Stop | Out-Null Describe "Basic function unit tests" -Tags Unit{ Context "Validate Parameters" { $paramCount = 3 $DefaultParamCount = 11 [object[]]$params = (Get-ChildItem function:\Backup-VSCode).Parameters.Keys $KnownParameters = 'Path', 'Settings', 'Extensions' It "Should contain our specific parameters" { ( (Compare-Object -ReferenceObject $KnownParameters -DifferenceObject $params -IncludeEqual | Where-Object SideIndicator -eq "==").Count) | Should Be $paramCount } It "Should only contain $ParamCount parameters" { $params.Count - $DefaultParamCount | Should Be $paramCount } } } Describe "Basic function unit tests" -Tags Unit{ Context "Validate Parameters" { $paramCount = 3 $DefaultParamCount = 11 [object[]]$params = (Get-ChildItem function:\Restore-VSCode).Parameters.Keys $KnownParameters = 'Path', 'Settings', 'Extensions' It "Should contain our specific parameters" { ( (Compare-Object -ReferenceObject $KnownParameters -DifferenceObject $params -IncludeEqual | Where-Object SideIndicator -eq "==").Count) | Should Be $paramCount } It "Should only contain $ParamCount parameters" { $params.Count - $DefaultParamCount | Should Be $paramCount } } } # clearly don't know what i'm doing here |