mirror of
https://github.com/ScoopInstaller/Scoop.git
synced 2025-12-11 18:46:02 +00:00
Use Pester 4.0 syntax to multiple files (#2714)
This commit is contained in:
committed by
Richard Kuhnt
parent
b37349a531
commit
c0dce0e8cd
@@ -13,10 +13,10 @@ describe "add_alias" -Tag 'Scoop' {
|
|||||||
context "alias doesn't exist" {
|
context "alias doesn't exist" {
|
||||||
it "creates a new alias" {
|
it "creates a new alias" {
|
||||||
$alias_file = "$shimdir\scoop-rm.ps1"
|
$alias_file = "$shimdir\scoop-rm.ps1"
|
||||||
$alias_file | should not exist
|
$alias_file | should -not -exist
|
||||||
|
|
||||||
add_alias "rm" '"hello, world!"'
|
add_alias "rm" '"hello, world!"'
|
||||||
Invoke-Expression $alias_file | should be "hello, world!"
|
Invoke-Expression $alias_file | should -be "hello, world!"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -24,10 +24,10 @@ describe "add_alias" -Tag 'Scoop' {
|
|||||||
it "does not change existing alias" {
|
it "does not change existing alias" {
|
||||||
$alias_file = "$shimdir\scoop-rm.ps1"
|
$alias_file = "$shimdir\scoop-rm.ps1"
|
||||||
new-item $alias_file -type file
|
new-item $alias_file -type file
|
||||||
$alias_file | should exist
|
$alias_file | should -exist
|
||||||
|
|
||||||
add_alias "rm" "test"
|
add_alias "rm" "test"
|
||||||
$alias_file | should FileContentMatch ""
|
$alias_file | should -FileContentMatch ""
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -45,11 +45,11 @@ describe "rm_alias" {
|
|||||||
$alias_file = "$shimdir\scoop-rm.ps1"
|
$alias_file = "$shimdir\scoop-rm.ps1"
|
||||||
add_alias "rm" '"hello, world!"'
|
add_alias "rm" '"hello, world!"'
|
||||||
|
|
||||||
$alias_file | should exist
|
$alias_file | should -exist
|
||||||
mock get_config { @(@{"rm" = "scoop-rm"}) }
|
mock get_config { @(@{"rm" = "scoop-rm"}) }
|
||||||
|
|
||||||
rm_alias "rm"
|
rm_alias "rm"
|
||||||
$alias_file | should not exist
|
$alias_file | should -not -exist
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,13 +8,13 @@ describe "hashtable" -Tag 'Scoop' {
|
|||||||
$obj = convertfrom-json $json
|
$obj = convertfrom-json $json
|
||||||
$ht = hashtable $obj
|
$ht = hashtable $obj
|
||||||
|
|
||||||
$ht.one | should beexactly 1
|
$ht.one | should -beexactly 1
|
||||||
$ht.two[0].a | should be "a"
|
$ht.two[0].a | should -be "a"
|
||||||
$ht.two[1] | should be "b"
|
$ht.two[1] | should -be "b"
|
||||||
$ht.two[2] | should beexactly 2
|
$ht.two[2] | should -beexactly 2
|
||||||
$ht.three.four | should beexactly 4
|
$ht.three.four | should -beexactly 4
|
||||||
$ht.five | should beexactly $true
|
$ht.five | should -beexactly $true
|
||||||
$ht.six | should beexactly $false
|
$ht.six | should -beexactly $false
|
||||||
[System.DateTime]::Equals($ht.seven, $(New-Object System.DateTime (2018, 06, 25, 09, 03, 15, 805))) | should be $true
|
[System.DateTime]::Equals($ht.seven, $(New-Object System.DateTime (2018, 06, 25, 09, 03, 15, 805))) | should -betrue
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,68 +4,68 @@
|
|||||||
describe "getopt" -Tag 'Scoop' {
|
describe "getopt" -Tag 'Scoop' {
|
||||||
it 'handle short option with required argument missing' {
|
it 'handle short option with required argument missing' {
|
||||||
$null, $null, $err = getopt '-x' 'x:' ''
|
$null, $null, $err = getopt '-x' 'x:' ''
|
||||||
$err | should be 'Option -x requires an argument.'
|
$err | should -be 'Option -x requires an argument.'
|
||||||
|
|
||||||
$null, $null, $err = getopt '-xy' 'x:y' ''
|
$null, $null, $err = getopt '-xy' 'x:y' ''
|
||||||
$err | should be 'Option -x requires an argument.'
|
$err | should -be 'Option -x requires an argument.'
|
||||||
}
|
}
|
||||||
|
|
||||||
it 'handle long option with required argument missing' {
|
it 'handle long option with required argument missing' {
|
||||||
$null, $null, $err = getopt '--arb' '' 'arb='
|
$null, $null, $err = getopt '--arb' '' 'arb='
|
||||||
$err | should be 'Option --arb requires an argument.'
|
$err | should -be 'Option --arb requires an argument.'
|
||||||
}
|
}
|
||||||
|
|
||||||
it 'handle unrecognized short option' {
|
it 'handle unrecognized short option' {
|
||||||
$null, $null, $err = getopt '-az' 'a' ''
|
$null, $null, $err = getopt '-az' 'a' ''
|
||||||
$err | should be 'Option -z not recognized.'
|
$err | should -be 'Option -z not recognized.'
|
||||||
}
|
}
|
||||||
|
|
||||||
it 'handle unrecognized long option' {
|
it 'handle unrecognized long option' {
|
||||||
$null, $null, $err = getopt '--non-exist' '' ''
|
$null, $null, $err = getopt '--non-exist' '' ''
|
||||||
$err | should be 'Option --non-exist not recognized.'
|
$err | should -be 'Option --non-exist not recognized.'
|
||||||
|
|
||||||
$null, $null, $err = getopt '--global','--another' 'abc:de:' 'global','one'
|
$null, $null, $err = getopt '--global','--another' 'abc:de:' 'global','one'
|
||||||
$err | should be 'Option --another not recognized.'
|
$err | should -be 'Option --another not recognized.'
|
||||||
}
|
}
|
||||||
|
|
||||||
it 'remaining args returned' {
|
it 'remaining args returned' {
|
||||||
$opt, $rem, $err = getopt '-g','rem' 'g' ''
|
$opt, $rem, $err = getopt '-g','rem' 'g' ''
|
||||||
$err | should be $null
|
$err | should -benullorempty
|
||||||
$opt.g | should be $true
|
$opt.g | should -betrue
|
||||||
$rem | should not be $null
|
$rem | should -not -benullorempty
|
||||||
$rem.length | should be 1
|
$rem.length | should -be 1
|
||||||
$rem[0] | should be 'rem'
|
$rem[0] | should -be 'rem'
|
||||||
}
|
}
|
||||||
|
|
||||||
it 'get a long flag and a short option with argument' {
|
it 'get a long flag and a short option with argument' {
|
||||||
$a = "--global -a 32bit test" -split ' '
|
$a = "--global -a 32bit test" -split ' '
|
||||||
$opt, $rem, $err = getopt $a 'ga:' 'global','arch='
|
$opt, $rem, $err = getopt $a 'ga:' 'global','arch='
|
||||||
|
|
||||||
$err | should be $null
|
$err | should -benullorempty
|
||||||
$opt.global | should be $true
|
$opt.global | should -betrue
|
||||||
$opt.a | should be '32bit'
|
$opt.a | should -be '32bit'
|
||||||
}
|
}
|
||||||
|
|
||||||
it 'handles regex characters' {
|
it 'handles regex characters' {
|
||||||
$a = "-?"
|
$a = "-?"
|
||||||
{ $opt, $rem, $err = getopt $a 'ga:' 'global' 'arch=' } | should not throw
|
{ $opt, $rem, $err = getopt $a 'ga:' 'global' 'arch=' } | should -not -throw
|
||||||
{ $null, $null, $null = getopt $a '?:' 'help' | should not throw }
|
{ $null, $null, $null = getopt $a '?:' 'help' | should -not -throw }
|
||||||
}
|
}
|
||||||
|
|
||||||
it 'handles short option without required argument' {
|
it 'handles short option without required argument' {
|
||||||
$null, $null, $err = getopt '-x' 'x' ''
|
$null, $null, $err = getopt '-x' 'x' ''
|
||||||
$err | should be $null
|
$err | should -benullorempty
|
||||||
}
|
}
|
||||||
|
|
||||||
it 'handles long option without required argument' {
|
it 'handles long option without required argument' {
|
||||||
$opt, $null, $err = getopt '--long-arg' '' 'long-arg'
|
$opt, $null, $err = getopt '--long-arg' '' 'long-arg'
|
||||||
$err | should be $null
|
$err | should -benullorempty
|
||||||
$opt."long-arg" | should be $true
|
$opt."long-arg" | should -betrue
|
||||||
}
|
}
|
||||||
|
|
||||||
it 'handles long option with required argument' {
|
it 'handles long option with required argument' {
|
||||||
$opt, $null, $err = getopt '--long-arg', 'test' '' 'long-arg='
|
$opt, $null, $err = getopt '--long-arg', 'test' '' 'long-arg='
|
||||||
$err | should be $null
|
$err | should -benullorempty
|
||||||
$opt."long-arg" | should be "test"
|
$opt."long-arg" | should -be "test"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,13 +7,13 @@ Describe -Tag 'Linter' "PSScriptAnalyzer" {
|
|||||||
|
|
||||||
Context "Checking ScriptAnalyzer" {
|
Context "Checking ScriptAnalyzer" {
|
||||||
It "Invoke-ScriptAnalyzer Cmdlet should exist" {
|
It "Invoke-ScriptAnalyzer Cmdlet should exist" {
|
||||||
{ Get-Command Invoke-ScriptAnalyzer -ErrorAction Stop } | Should Not Throw
|
{ Get-Command Invoke-ScriptAnalyzer -ErrorAction Stop } | should -not -throw
|
||||||
}
|
}
|
||||||
It "PSScriptAnalyzerSettings.ps1 should exist" {
|
It "PSScriptAnalyzerSettings.ps1 should exist" {
|
||||||
Test-Path "$repo_dir\PSScriptAnalyzerSettings.psd1" | Should Be $true
|
Test-Path "$repo_dir\PSScriptAnalyzerSettings.psd1" | should -betrue
|
||||||
}
|
}
|
||||||
It "There should be files to test" {
|
It "There should be files to test" {
|
||||||
$scoop_modules.Count | Should Not Be 0
|
$scoop_modules.Count | should -not -be 0
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -23,7 +23,7 @@ Describe -Tag 'Linter' "PSScriptAnalyzer" {
|
|||||||
foreach($directory in $scoop_modules) {
|
foreach($directory in $scoop_modules) {
|
||||||
$analysis = Invoke-ScriptAnalyzer -Path $directory.FullName -Settings $linting_settings.FullName
|
$analysis = Invoke-ScriptAnalyzer -Path $directory.FullName -Settings $linting_settings.FullName
|
||||||
It "Should pass: $directory" {
|
It "Should pass: $directory" {
|
||||||
$analysis.Count | Should Be 0
|
$analysis.Count | should -be 0
|
||||||
}
|
}
|
||||||
if($analysis) {
|
if($analysis) {
|
||||||
foreach($result in $analysis) {
|
foreach($result in $analysis) {
|
||||||
|
|||||||
@@ -12,34 +12,34 @@ describe -Tag 'Manifests' "manifest-validation" {
|
|||||||
}
|
}
|
||||||
|
|
||||||
it "Scoop.Validator is available" {
|
it "Scoop.Validator is available" {
|
||||||
([System.Management.Automation.PSTypeName]'Scoop.Validator').Type | should be 'Scoop.Validator'
|
([System.Management.Automation.PSTypeName]'Scoop.Validator').Type | should -be 'Scoop.Validator'
|
||||||
}
|
}
|
||||||
|
|
||||||
context "parse_json function" {
|
context "parse_json function" {
|
||||||
it "fails with invalid json" {
|
it "fails with invalid json" {
|
||||||
{ parse_json "$working_dir\broken_wget.json" } | should throw
|
{ parse_json "$working_dir\broken_wget.json" } | should -throw
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
context "schema validation" {
|
context "schema validation" {
|
||||||
it "fails with broken schema" {
|
it "fails with broken schema" {
|
||||||
$validator = new-object Scoop.Validator("$working_dir/broken_schema.json", $true)
|
$validator = new-object Scoop.Validator("$working_dir/broken_schema.json", $true)
|
||||||
$validator.Validate("$working_dir/wget.json") | should be $false
|
$validator.Validate("$working_dir/wget.json") | should -BeFalse
|
||||||
$validator.Errors.Count | should be 1
|
$validator.Errors.Count | should -be 1
|
||||||
$validator.Errors | select-object -First 1 | should match "broken_schema.*(line 6).*(position 4)"
|
$validator.Errors | select-object -First 1 | should -match "broken_schema.*(line 6).*(position 4)"
|
||||||
}
|
}
|
||||||
it "fails with broken manifest" {
|
it "fails with broken manifest" {
|
||||||
$validator = new-object Scoop.Validator($schema, $true)
|
$validator = new-object Scoop.Validator($schema, $true)
|
||||||
$validator.Validate("$working_dir/broken_wget.json") | should be $false
|
$validator.Validate("$working_dir/broken_wget.json") | should -BeFalse
|
||||||
$validator.Errors.Count | should be 1
|
$validator.Errors.Count | should -be 1
|
||||||
$validator.Errors | select-object -First 1 | should match "broken_wget.*(line 5).*(position 4)"
|
$validator.Errors | select-object -First 1 | should -match "broken_wget.*(line 5).*(position 4)"
|
||||||
}
|
}
|
||||||
it "fails with invalid manifest" {
|
it "fails with invalid manifest" {
|
||||||
$validator = new-object Scoop.Validator($schema, $true)
|
$validator = new-object Scoop.Validator($schema, $true)
|
||||||
$validator.Validate("$working_dir/invalid_wget.json") | should be $false
|
$validator.Validate("$working_dir/invalid_wget.json") | should -BeFalse
|
||||||
$validator.Errors.Count | should be 16
|
$validator.Errors.Count | should -be 16
|
||||||
$validator.Errors | select-object -First 1 | should match "invalid_wget.*randomproperty.*properties\.$"
|
$validator.Errors | select-object -First 1 | should -match "invalid_wget.*randomproperty.*properties\.$"
|
||||||
$validator.Errors | select-object -Last 1 | should match "invalid_wget.*version\.$"
|
$validator.Errors | select-object -Last 1 | should -match "invalid_wget.*version\.$"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -74,7 +74,7 @@ describe -Tag 'Manifests' "manifest-validation" {
|
|||||||
if ($validator.Errors.Count -gt 0) {
|
if ($validator.Errors.Count -gt 0) {
|
||||||
write-host -f yellow $validator.ErrorsAsString
|
write-host -f yellow $validator.ErrorsAsString
|
||||||
}
|
}
|
||||||
$validator.Errors.Count | should be 0
|
$validator.Errors.Count | should -be 0
|
||||||
} catch {
|
} catch {
|
||||||
if($_.exception.message -like '*The free-quota limit of 1000 schema validations per hour has been reached.*') {
|
if($_.exception.message -like '*The free-quota limit of 1000 schema validations per hour has been reached.*') {
|
||||||
$quota_exceeded = $true
|
$quota_exceeded = $true
|
||||||
@@ -91,7 +91,7 @@ describe -Tag 'Manifests' "manifest-validation" {
|
|||||||
if(!$url) {
|
if(!$url) {
|
||||||
$url = $url64
|
$url = $url64
|
||||||
}
|
}
|
||||||
$url | should not benullorempty
|
$url | should -not -benullorempty
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ describe "versions" -Tag 'Scoop' {
|
|||||||
$b = '1.8.5-1'
|
$b = '1.8.5-1'
|
||||||
$res = compare_versions $a $b
|
$res = compare_versions $a $b
|
||||||
|
|
||||||
$res | should be 1
|
$res | should -be 1
|
||||||
}
|
}
|
||||||
|
|
||||||
it 'handles plain string version comparison to int version' {
|
it 'handles plain string version comparison to int version' {
|
||||||
@@ -15,7 +15,7 @@ describe "versions" -Tag 'Scoop' {
|
|||||||
$b = '20150405'
|
$b = '20150405'
|
||||||
$res = compare_versions $a $b
|
$res = compare_versions $a $b
|
||||||
|
|
||||||
$res | should be 1
|
$res | should -be 1
|
||||||
}
|
}
|
||||||
|
|
||||||
it 'handles dashed version components' {
|
it 'handles dashed version components' {
|
||||||
@@ -24,14 +24,14 @@ describe "versions" -Tag 'Scoop' {
|
|||||||
|
|
||||||
$res = compare_versions $a $b
|
$res = compare_versions $a $b
|
||||||
|
|
||||||
$res | should be -1
|
$res | should -be -1
|
||||||
}
|
}
|
||||||
|
|
||||||
it 'handles comparsion against en empty string' {
|
it 'handles comparsion against en empty string' {
|
||||||
compare_versions '7.0.4-9' '' | should be 1
|
compare_versions '7.0.4-9' '' | should -be 1
|
||||||
}
|
}
|
||||||
|
|
||||||
it 'handles equal versions' {
|
it 'handles equal versions' {
|
||||||
compare_versions '12.0' '12.0' | should be 0
|
compare_versions '12.0' '12.0' | should -be 0
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user