@@ -121,7 +121,7 @@ Describe PowerShell.PSGet.PublishModuleTests -Tags 'BVT','InnerLoop' {
121
121
# Copy module to $script:ProgramFilesModulesPath
122
122
Copy-Item $script :PublishModuleBase $script :ProgramFilesModulesPath - Recurse - Force
123
123
124
- Publish-Module - Name $script :PublishModuleName - ReleaseNotes " $script :PublishModuleName release notes" - Tags PSGet - LicenseUri " https://$script :PublishModuleName .com/license" - ProjectUri " https://$script :PublishModuleName .com" - WarningAction SilentlyContinue
124
+ Publish-Module - Name $script :PublishModuleName - ReleaseNotes " $script :PublishModuleName release notes" - Tags PSGet - LicenseUri " https://$script :PublishModuleName .com/license" - ProjectUri " https://$script :PublishModuleName .com" - WarningAction SilentlyContinue
125
125
126
126
$psgetItemInfo = Find-Module $script :PublishModuleName - RequiredVersion $version
127
127
# This version can be 1.0 or 1.0.0, depending on the version of NuGet.exe or dotnet command.
@@ -201,6 +201,39 @@ Describe PowerShell.PSGet.PublishModuleTests -Tags 'BVT','InnerLoop' {
201
201
Assert ($psgetItemInfo.Name -eq $script :PublishModuleName ) " Publish-Module should publish a module with valid module path, $ ( $psgetItemInfo.Name ) "
202
202
}
203
203
204
+ # Purpose: Check that files with hidden attributes (like .git dirs) are not published
205
+ #
206
+ # Action: Publish-Module -Path <ModulePath> -NuGetApiKey <ApiKey>
207
+ #
208
+ # Expected Result: published module should not contain these files
209
+ #
210
+ It " PublishModuleLeavesOutHiddenFiles" {
211
+
212
+ # create module dir containing a hidden dir with a normal file inside, and a normal file
213
+ $version = " 1.0"
214
+ New-ModuleManifest - Path (Join-Path - Path $script :PublishModuleBase - ChildPath " $script :PublishModuleName .psd1" ) - ModuleVersion $version - Description " $script :PublishModuleName module" - NestedModules " $script :PublishModuleName .psm1"
215
+ New-Item - Type Directory - Path $script :PublishModuleBase - Name " .git"
216
+ New-Item - Type File - Path $script :PublishModuleBase \.git\dummy
217
+ New-Item - Type File - Path $script :PublishModuleBase - Name " normal"
218
+ $hiddenDir = Get-Item $script :PublishModuleBase \.git - force
219
+ $hiddenDir.Attributes = " hidden"
220
+
221
+ # publish it, then save the published one and inspect it
222
+ Publish-Module - Path $script :PublishModuleBase - NuGetApiKey $script :ApiKey - ReleaseNotes " $script :PublishModuleName release notes" - Tags PSGet - LicenseUri " https://$script :PublishModuleName .com/license" - ProjectUri " https://$script :PublishModuleName .com" - WarningAction SilentlyContinue
223
+ New-Item - type directory - path $script :PublishModuleBase - Name saved
224
+ Save-Module $script :PublishModuleName - RequiredVersion $version - Path $script :PublishModuleBase \saved
225
+
226
+ # it should contain the normal file, but not the hidden dir
227
+ $contents = (dir - rec - force $script :PublishModuleBase | Out-String )
228
+ $basedir = " $script :PublishModuleBase \saved\$script :PublishModuleName "
229
+ if ($PSVersionTable.PSVersion -gt ' 5.0.0' ) {
230
+ $basedir = join-path $basedir " 1.0.0"
231
+ }
232
+
233
+ Assert ((Test-Path $basedir \.git) -eq $false ) " .git dir shouldn't be included ($contents )"
234
+ Assert ((Test-Path $basedir \normal) -eq $true ) " normal file should be included ($contents )"
235
+ }
236
+
204
237
# Purpose: Publish a module with -Path
205
238
#
206
239
# Action: Publish-Module -Path <ModulePath> -NuGetApiKey <ApiKey>
@@ -273,11 +306,11 @@ Describe PowerShell.PSGet.PublishModuleTests -Tags 'BVT','InnerLoop' {
273
306
$moduleBaseWithoutVersion = $script :PublishModuleBase
274
307
275
308
$moduleBase = Join-Path - Path $script :PublishModuleBase - ChildPath $version1
276
- $null = New-Item - ItemType Directory - Path $moduleBase - Force
309
+ $null = New-Item - ItemType Directory - Path $moduleBase - Force
277
310
New-ModuleManifest - Path (Join-Path - Path $moduleBase - ChildPath " $script :PublishModuleName .psd1" ) - ModuleVersion $version1 - Description " $script :PublishModuleName module"
278
311
279
312
$moduleBase = Join-Path - Path $script :PublishModuleBase - ChildPath $version2
280
- $null = New-Item - ItemType Directory - Path $moduleBase - Force
313
+ $null = New-Item - ItemType Directory - Path $moduleBase - Force
281
314
New-ModuleManifest - Path (Join-Path - Path $moduleBase - ChildPath " $script :PublishModuleName .psd1" ) - ModuleVersion $version2 - Description " $script :PublishModuleName module"
282
315
283
316
AssertFullyQualifiedErrorIdEquals - scriptblock {Publish-Module - Path $moduleBaseWithoutVersion - WarningAction SilentlyContinue}`
@@ -923,7 +956,7 @@ Describe PowerShell.PSGet.PublishModuleTests -Tags 'BVT','InnerLoop' {
923
956
$ProjectUri = ' https://contoso.com/'
924
957
$IconUri = ' https://contoso.com/icon'
925
958
$ReleaseNotes = ' Test module for external module dependecies'
926
- New-ModuleManifest - Path (Join-Path - Path $script :PublishModuleBase - ChildPath " $script :PublishModuleName .psd1" ) - ModuleVersion $version - Description " $script :PublishModuleName module"
959
+ New-ModuleManifest - Path (Join-Path - Path $script :PublishModuleBase - ChildPath " $script :PublishModuleName .psd1" ) - ModuleVersion $version - Description " $script :PublishModuleName module"
927
960
# Copy module to $script:ProgramFilesModulesPath
928
961
Copy-Item $script :PublishModuleBase $script :ProgramFilesModulesPath - Recurse - Force
929
962
@@ -941,7 +974,7 @@ Describe PowerShell.PSGet.PublishModuleTests -Tags 'BVT','InnerLoop' {
941
974
942
975
# Purpose: Test Publish-Module cmdlet gives warnings if Cmdlets/Functions/DscResourcesToExport has "*" in manifest
943
976
#
944
- # Action: Publish-Module
977
+ # Action: Publish-Module
945
978
#
946
979
# Expected Result: Publish operation should succeed but throw warnings
947
980
#
@@ -959,17 +992,17 @@ Describe PowerShell.PSGet.PublishModuleTests -Tags 'BVT','InnerLoop' {
959
992
using System;
960
993
using System.Management.Automation;
961
994
namespace PSGetTestModule
962
- {
995
+ {
963
996
[Cmdlet("Test","PSGetTestCmdlet")]
964
997
public class PSGetTestCmdlet : PSCmdlet
965
- {
998
+ {
966
999
[Parameter]
967
1000
public int a {
968
1001
get;
969
1002
set;
970
- }
1003
+ }
971
1004
protected override void ProcessRecord()
972
- {
1005
+ {
973
1006
String s = "Value is :" + a;
974
1007
WriteObject(s);
975
1008
}
@@ -1205,7 +1238,7 @@ Describe PowerShell.PSGet.PublishModuleTests -Tags 'BVT','InnerLoop' {
1205
1238
1206
1239
# Purpose: Validate that Publish-Module prompts to upgrade NuGet.exe if local NuGet.exe file is less than minimum required version
1207
1240
#
1208
- # Action: Publish-Module
1241
+ # Action: Publish-Module
1209
1242
#
1210
1243
# Expected Result: Publish operation should fail, NuGet.exe should not upgrade to latest version
1211
1244
#
@@ -1372,7 +1405,7 @@ Describe PowerShell.PSGet.PublishModuleTests.P1 -Tags 'P1','OuterLoop' {
1372
1405
Publish-Module - Path $script :PublishModuleBase - NuGetApiKey $script :ApiKey - Force - WarningAction SilentlyContinue
1373
1406
1374
1407
$psgetItemInfo = Find-Module $script :PublishModuleName - RequiredVersion $version
1375
- Assert ($psgetItemInfo.Name -eq $script :PublishModuleName ) " Publish-Module should publish a module with lower version, $ ( $psgetItemInfo.Name ) "
1408
+ Assert ($psgetItemInfo.Name -eq $script :PublishModuleName ) " Publish-Module should publish a module with lower version, $ ( $psgetItemInfo.Name ) "
1376
1409
}
1377
1410
1378
1411
It " PublishModuleWithoutForceAndLowerVersion" {
@@ -1553,7 +1586,7 @@ Describe PowerShell.PSGet.PublishModuleTests.P1 -Tags 'P1','OuterLoop' {
1553
1586
#
1554
1587
It " PublishInvalidModule" {
1555
1588
$tempmodulebase = Join-Path (Join-Path $script :TempPath " $ ( Get-Random ) " ) " InvalidModule"
1556
- $null = New-Item $tempmodulebase - Force - ItemType Directory
1589
+ $null = New-Item $tempmodulebase - Force - ItemType Directory
1557
1590
1558
1591
try
1559
1592
{
@@ -1779,7 +1812,7 @@ Describe PowerShell.PSGet.PublishModuleTests.P1 -Tags 'P1','OuterLoop' {
1779
1812
$null = New-Item - Path $DepModuleBase - ItemType Directory - Force
1780
1813
New-ModuleManifest - Path (Join-Path $DepModuleBase " $_ .psd1" ) `
1781
1814
- ModuleVersion ' 1.0' `
1782
- - Description " $_ module"
1815
+ - Description " $_ module"
1783
1816
}
1784
1817
1785
1818
@@ -1809,7 +1842,7 @@ Describe PowerShell.PSGet.PublishModuleTests.P1 -Tags 'P1','OuterLoop' {
1809
1842
}
1810
1843
}
1811
1844
}
1812
- "@
1845
+ "@
1813
1846
1814
1847
($psd1Text -replace ' __VERSION__' , $version ) | Out-File - FilePath (Join-Path - Path $ModuleBase - ChildPath " $ModuleName .psd1" ) - Force
1815
1848
@@ -1870,20 +1903,20 @@ Describe PowerShell.PSGet.PublishModuleTests.P2 -Tags 'P2','OuterLoop' {
1870
1903
$RequiredModules1 = @ (' RequiredModule1' ,
1871
1904
@ {ModuleName = ' RequiredModule2' ; ModuleVersion = ' 1.5' ; })
1872
1905
1873
- $RequiredModules2 = @ (' RequiredModule1' ,
1906
+ $RequiredModules2 = @ (' RequiredModule1' ,
1874
1907
@ {ModuleName = ' RequiredModule2' ; ModuleVersion = ' 2.0' ; })
1875
1908
1876
- $NestedRequiredModules1 = @ (' NestedRequiredModule1' ,
1909
+ $NestedRequiredModules1 = @ (' NestedRequiredModule1' ,
1877
1910
@ {ModuleName = ' NestedRequiredModule2' ; ModuleVersion = ' 1.5' ; })
1878
1911
1879
- $NestedRequiredModules2 = @ (' NestedRequiredModule1' ,
1912
+ $NestedRequiredModules2 = @ (' NestedRequiredModule1' ,
1880
1913
@ {ModuleName = ' NestedRequiredModule2' ; ModuleVersion = ' 2.0' ; })
1881
1914
1882
1915
if ($PSVersionTable.PSVersion -ge ' 5.0.0' )
1883
1916
{
1884
1917
$DepencyModuleNames += @ (" RequiredModule3" ,
1885
1918
" RequiredModule4" ,
1886
- " RequiredModule5" <# ,
1919
+ " RequiredModule5" <# ,
1887
1920
"NestedRequiredModule3",
1888
1921
"NestedRequiredModule4",
1889
1922
"NestedRequiredModule5"#>
@@ -1991,7 +2024,7 @@ Describe PowerShell.PSGet.PublishModuleTests.P2 -Tags 'P2','OuterLoop' {
1991
2024
$null = New-Item - Path $DepModuleBase - ItemType Directory - Force
1992
2025
New-ModuleManifest - Path (Join-Path $DepModuleBase " $_ .psd1" ) `
1993
2026
- ModuleVersion ' 1.0.0' `
1994
- - Description " $_ module"
2027
+ - Description " $_ module"
1995
2028
}
1996
2029
1997
2030
$psd1Text = @"
@@ -2020,7 +2053,7 @@ Describe PowerShell.PSGet.PublishModuleTests.P2 -Tags 'P2','OuterLoop' {
2020
2053
}
2021
2054
}
2022
2055
}
2023
- "@
2056
+ "@
2024
2057
2025
2058
($psd1Text -replace ' __VERSION__' , $version ) | Out-File - FilePath (Join-Path - Path $ModuleBase - ChildPath " $ModuleName .psd1" ) - Force
2026
2059
@@ -2097,4 +2130,4 @@ Describe PowerShell.PSGet.PublishModuleTests.P2 -Tags 'P2','OuterLoop' {
2097
2130
}
2098
2131
}
2099
2132
}
2100
- }
2133
+ }
0 commit comments