@@ -10,6 +10,11 @@ BeforeAll {
1010 $testSupportPath = (Resolve-Path - LiteralPath (Join-Path $here ' RemainingHelperCoverage.TestSupport.ps1' )).Path
1111 $script :moduleName = (Get-Content - LiteralPath (Join-Path $repoRoot ' project.json' ) - Raw | ConvertFrom-Json ).ProjectName
1212 $script :distModuleDir = Join-Path $repoRoot " dist/$script :moduleName "
13+ $script :metadataProjectLayout = [pscustomobject ]@ {
14+ ProjectRoot = ' /tmp/project'
15+ OutputModuleDir = ' /tmp/project/dist/PackageProject'
16+ PackageOutputDir = ' /tmp/project/artifacts/packages'
17+ }
1318
1419 if (-not (Test-Path - LiteralPath $script :distModuleDir )) {
1520 throw " Expected built $script :moduleName module at: $script :distModuleDir . Run Invoke-NovaBuild in the repo root first."
@@ -79,6 +84,7 @@ Describe 'Package latest policy behavior' {
7984 ConvertTo-NovaPackageLatestPolicy - Value ' Stable' | Should - Be ' stable'
8085 ConvertTo-NovaPackageLatestPolicy - Value ' always' | Should - Be ' always'
8186 ConvertTo-NovaPackageLatestPolicy - Value $null | Should - Be ' never'
87+ ConvertTo-NovaPackageLatestPolicy - Value ' ' | Should - Be ' never'
8288
8389 $thrown = $null
8490 try {
@@ -94,29 +100,9 @@ Describe 'Package latest policy behavior' {
94100 }
95101
96102 It ' Get-NovaPackageMetadataList also returns latest-named metadata when Package.Latest is always' {
97- InModuleScope $script :moduleName {
98- $projectInfo = [pscustomobject ]@ {
99- ProjectName = ' PackageProject'
100- Version = ' 2.3.4'
101- ProjectRoot = ' /tmp/project'
102- Description = ' Top-level description'
103- Manifest = [ordered ]@ {
104- Author = ' Author One'
105- Tags = @ (' Nova' , ' Packaging' )
106- }
107- Package = [ordered ]@ {
108- Id = ' PackageProject'
109- Types = @ (' NuGet' , ' Zip' )
110- Latest = ' always'
111- OutputDirectory = [ordered ]@ {
112- Path = ' /tmp/project/artifacts/packages'
113- Clean = $true
114- }
115- PackageFileName = ' PackageProject.2.3.4.nupkg'
116- Authors = ' Author One'
117- Description = ' Top-level description'
118- }
119- }
103+ $projectInfo = Get-TestNovaPackageProjectInfo - Layout $script :metadataProjectLayout - CleanOutputDirectory $true - PackageTypes @ (' NuGet' , ' Zip' ) - Latest ' always'
104+ InModuleScope $script :moduleName - Parameters @ {ProjectInfo = $projectInfo } {
105+ param ($ProjectInfo )
120106
121107 $result = @ (Get-NovaPackageMetadataList - ProjectInfo $projectInfo )
122108
@@ -138,29 +124,9 @@ Describe 'Package latest policy behavior' {
138124 }
139125
140126 It ' Get-NovaPackageMetadataList only returns versioned metadata when Package.Latest is stable and the version is preview' {
141- InModuleScope $script :moduleName {
142- $projectInfo = [pscustomobject ]@ {
143- ProjectName = ' PackageProject'
144- Version = ' 2.3.4-preview1'
145- ProjectRoot = ' /tmp/project'
146- Description = ' Top-level description'
147- Manifest = [ordered ]@ {
148- Author = ' Author One'
149- Tags = @ (' Nova' , ' Packaging' )
150- }
151- Package = [ordered ]@ {
152- Id = ' PackageProject'
153- Types = @ (' NuGet' , ' Zip' )
154- Latest = ' stable'
155- OutputDirectory = [ordered ]@ {
156- Path = ' /tmp/project/artifacts/packages'
157- Clean = $true
158- }
159- PackageFileName = ' PackageProject.2.3.4-preview1.nupkg'
160- Authors = ' Author One'
161- Description = ' Top-level description'
162- }
163- }
127+ $projectInfo = Get-TestNovaPackageProjectInfo - Layout $script :metadataProjectLayout - CleanOutputDirectory $true - PackageTypes @ (' NuGet' , ' Zip' ) - Version ' 2.3.4-preview1' - Latest ' stable'
128+ InModuleScope $script :moduleName - Parameters @ {ProjectInfo = $projectInfo } {
129+ param ($ProjectInfo )
164130
165131 $result = @ (Get-NovaPackageMetadataList - ProjectInfo $projectInfo )
166132
@@ -174,29 +140,9 @@ Describe 'Package latest policy behavior' {
174140 }
175141
176142 It ' Get-NovaPackageMetadataList still supports legacy boolean Package.Latest values' {
177- InModuleScope $script :moduleName {
178- $projectInfo = [pscustomobject ]@ {
179- ProjectName = ' PackageProject'
180- Version = ' 2.3.4-preview1'
181- ProjectRoot = ' /tmp/project'
182- Description = ' Top-level description'
183- Manifest = [ordered ]@ {
184- Author = ' Author One'
185- Tags = @ (' Nova' , ' Packaging' )
186- }
187- Package = [ordered ]@ {
188- Id = ' PackageProject'
189- Types = @ (' NuGet' , ' Zip' )
190- Latest = $true
191- OutputDirectory = [ordered ]@ {
192- Path = ' /tmp/project/artifacts/packages'
193- Clean = $true
194- }
195- PackageFileName = ' PackageProject.2.3.4-preview1.nupkg'
196- Authors = ' Author One'
197- Description = ' Top-level description'
198- }
199- }
143+ $projectInfo = Get-TestNovaPackageProjectInfo - Layout $script :metadataProjectLayout - CleanOutputDirectory $true - PackageTypes @ (' NuGet' , ' Zip' ) - Version ' 2.3.4-preview1' - Latest $true
144+ InModuleScope $script :moduleName - Parameters @ {ProjectInfo = $projectInfo } {
145+ param ($ProjectInfo )
200146
201147 $result = @ (Get-NovaPackageMetadataList - ProjectInfo $projectInfo )
202148
0 commit comments