@@ -458,6 +458,78 @@ Describe "Build-Module" {
458
458
Pop-Location - StackName BuildModuleTest
459
459
}
460
460
461
+ Context " Setting the version with no pre-release" {
462
+ # $SemVer = "1.0.0-beta03+sha.22c35ffff166f34addc49a3b80e622b543199cc5.Date.2018-10-11"
463
+ $SemVer = @ {
464
+ Version = " 1.0.0"
465
+ BuildMetadata = " Sha.22c35ffff166f34addc49a3b80e622b543199cc5.Date.2018-10-11"
466
+ }
467
+ $global :ExpectedVersion = " 1.0.0"
468
+ Push-Location TestDrive:\ - StackName BuildModuleTest
469
+ New-Item - ItemType Directory - Path TestDrive:\MyModule\ - Force
470
+ New-Item - ItemType Directory - Path " TestDrive:\$ExpectedVersion \" - Force
471
+
472
+ Mock SetModuleContent - ModuleName ModuleBuilder {}
473
+ Mock Update-Metadata - ModuleName ModuleBuilder {}
474
+
475
+ Mock InitializeBuild - ModuleName ModuleBuilder {
476
+ # These are actually all the values that we need
477
+ [PSCustomObject ]@ {
478
+ OutputDirectory = " TestDrive:\$Version "
479
+ Name = " MyModule"
480
+ ModuleBase = " TestDrive:\MyModule\"
481
+ CopyPaths = @ ()
482
+ Encoding = " UTF8"
483
+ PublicFilter = " Public\*.ps1"
484
+ }
485
+ }
486
+
487
+ Mock New-Item { [IO.FileInfo ](Join-Path (Convert-Path " TestDrive:\" ) $ExpectedVersion ) } - Parameter {
488
+ $Path -eq " TestDrive:\$ExpectedVersion " -and
489
+ $ItemType -eq " Directory" -and
490
+ $Force -eq $true
491
+ } - ModuleName ModuleBuilder
492
+
493
+ Mock Test-Path { $True } - Parameter { $Path -eq " TestDrive:\$ExpectedVersion " } - ModuleName ModuleBuilder
494
+ Mock Remove-Item {} - Parameter { $Path.StartsWith ((Convert-Path " TestDrive:\$ExpectedVersion " )) } - ModuleName ModuleBuilder
495
+ Mock Set-Location {} - ModuleName ModuleBuilder
496
+ Mock Copy-Item {} - ModuleName ModuleBuilder
497
+ # Release notes
498
+ Mock Get-Metadata { " First Release" } - ModuleName ModuleBuilder
499
+ Mock Join-Path {
500
+ [IO.Path ]::Combine($Path , $ChildPath )
501
+ } - ModuleName ModuleBuilder
502
+
503
+ Mock Get-ChildItem {
504
+ [IO.FileInfo ]$ (Join-Path $ (Convert-Path " TestDrive:\" ) " MyModule\Public\Get-MyInfo.ps1" )
505
+ } - ModuleName ModuleBuilder
506
+
507
+ try {
508
+ Build-Module @SemVer
509
+ } catch {
510
+ Pop-Location - StackName BuildModuleTest
511
+ throw
512
+ }
513
+
514
+ It " Should build to an output folder with the simple version." {
515
+ Assert-MockCalled Remove-Item - ModuleName ModuleBuilder
516
+ Assert-MockCalled New-Item - ModuleName ModuleBuilder
517
+ }
518
+
519
+ It " Should update the module version to the simple version." {
520
+ Assert-MockCalled Update-Metadata - ModuleName ModuleBuilder - ParameterFilter {
521
+ $PropertyName -eq " ModuleVersion" -and $Value -eq $ExpectedVersion
522
+ }
523
+ }
524
+ It " Should not change the module pre-release value" {
525
+ Assert-MockCalled Update-Metadata - Times 0 - ModuleName ModuleBuilder - ParameterFilter {
526
+ $PropertyName -eq " PrivateData.PSData.Prerelease"
527
+ }
528
+ }
529
+
530
+ Pop-Location - StackName BuildModuleTest
531
+ }
532
+
461
533
Context " Bug #70 Cannot build 1.2.3-pre-release" {
462
534
BeforeEach {
463
535
Push-Location TestDrive:\ - StackName BuildModuleTest
0 commit comments