@@ -458,6 +458,78 @@ Describe "Build-Module" {
458458 Pop-Location - StackName BuildModuleTest
459459 }
460460
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+
461533 Context " Bug #70 Cannot build 1.2.3-pre-release" {
462534 BeforeEach {
463535 Push-Location TestDrive:\ - StackName BuildModuleTest
0 commit comments