refactor code to restore pester into a separate function called Restore-PSPester update message on what to do when pester is missing Add ability for get-psoptions to default to new-psoptions fix an issue with publish-pstesttools when a build has not been run since build.psm1 has been imported (try to use the default options) make start-pspester use the last build, not just use the default options fix an issue in restore caused some files not to be removed
123 lines
4.5 KiB
PowerShell
123 lines
4.5 KiB
PowerShell
$moduleRootFilePath = Split-Path -Path $PSScriptRoot -Parent
|
|
|
|
# Identify the repository root path of the resource module
|
|
$repoRootPath = (Resolve-Path -LiteralPath (Join-path $moduleRootFilePath "../..")).ProviderPath
|
|
$repoRootPathFound = $false
|
|
|
|
Describe 'Common Tests - Validate Markdown Files' -Tag 'CI' {
|
|
BeforeAll {
|
|
# Skip if not windows, We don't need these tests to run on linux (the tests run fine in travis-ci)
|
|
$skip = !$IsWindows
|
|
if ( !$skip )
|
|
{
|
|
$NpmInstalled = "not installed"
|
|
if (Get-Command -Name 'npm' -ErrorAction SilentlyContinue)
|
|
{
|
|
$NpmInstalled = "Installed"
|
|
Write-Verbose -Message "NPM is checking Gulp is installed. This may take a few moments." -Verbose
|
|
Start-Process `
|
|
-FilePath "npm" `
|
|
-ArgumentList @('install','--silent') `
|
|
-Wait `
|
|
-WorkingDirectory $PSScriptRoot `
|
|
-NoNewWindow
|
|
Start-Process `
|
|
-FilePath "npm" `
|
|
-ArgumentList @('install','-g','gulp','--silent') `
|
|
-Wait `
|
|
-WorkingDirectory $PSScriptRoot `
|
|
-NoNewWindow
|
|
}
|
|
elseif( -not $env:AppVeyor)
|
|
{
|
|
<#
|
|
On Windows, but not an AppVeyor and pre-requisites are missing
|
|
For now we will skip, and write a warning. Work to resolve this is tracked in:
|
|
https://github.com/PowerShell/PowerShell/issues/3429
|
|
#>
|
|
Write-Warning "Node and npm are required to run this test"
|
|
$skip = $true
|
|
}
|
|
}
|
|
}
|
|
|
|
AfterAll {
|
|
if ( !$skip )
|
|
{
|
|
<#
|
|
NPM install all the tools needed to run this test in the test folder.
|
|
We will now clean these up.
|
|
We're using this tool to delete the node_modules folder because it gets too long
|
|
for PowerShell to remove.
|
|
#>
|
|
Start-Process `
|
|
-FilePath "npm" `
|
|
-ArgumentList @('install','rimraf','-g','--silent') `
|
|
-Wait `
|
|
-WorkingDirectory $PSScriptRoot `
|
|
-NoNewWindow
|
|
Start-Process `
|
|
-FilePath "rimraf" `
|
|
-ArgumentList @(Join-Path -Path $PSScriptRoot -ChildPath 'node_modules') `
|
|
-Wait `
|
|
-WorkingDirectory $PSScriptRoot `
|
|
-NoNewWindow
|
|
}
|
|
}
|
|
|
|
It "Should not have errors in any markdown files" -Skip:$skip {
|
|
$NpmInstalled | should BeExactly "Installed"
|
|
$mdErrors = 0
|
|
Push-Location -Path $PSScriptRoot
|
|
try
|
|
{
|
|
$docsToTest = @(
|
|
'./*.md'
|
|
'./docs/*.md'
|
|
'./docs/building/*.md'
|
|
'./docs/cmdlet-example/*.md'
|
|
'./docs/git/submodules.md'
|
|
'./docs/installation/*.md'
|
|
'./docs/maintainers/README.md'
|
|
'./docs/testing-guidelines/testing-guidelines.md'
|
|
'./demos/SSHRemoting/*.md'
|
|
'./docker/*.md'
|
|
'./test/powershell/README.md'
|
|
'./tools/*.md'
|
|
'./.github/CONTRIBUTING.md'
|
|
)
|
|
$filter = ($docsToTest -join ',')
|
|
&"gulp" test-mdsyntax --silent `
|
|
--rootpath $repoRootPath `
|
|
--filter $filter
|
|
|
|
}
|
|
catch
|
|
{
|
|
Write-Warning -Message ("Unable to run gulp to test markdown files. Please " + `
|
|
"be sure that you have installed nodejs and have " + `
|
|
"run 'npm install -g gulp' in order to have this " + `
|
|
"text execute.")
|
|
}
|
|
finally
|
|
{
|
|
Pop-Location
|
|
}
|
|
|
|
$LASTEXITCODE | Should beexactly 0
|
|
|
|
$mdIssuesPath = Join-Path -Path $PSScriptRoot -ChildPath "markdownissues.txt"
|
|
|
|
$mdIssuesPath | should exist
|
|
|
|
[string] $markdownErrors = Get-Content -Path $mdIssuesPath
|
|
Remove-Item -Path $mdIssuesPath -Force -ErrorAction SilentlyContinue
|
|
|
|
if ($markdownErrors -ne "--EMPTY--")
|
|
{
|
|
$markdownErrors += ' (See https://github.com/DavidAnson/markdownlint/blob/master/doc/Rules.md for an explanation of the error codes)'
|
|
}
|
|
|
|
$markdownErrors | Should BeExactly "--EMPTY--"
|
|
}
|
|
}
|