55 lines
1.7 KiB
PowerShell
55 lines
1.7 KiB
PowerShell
#Requires -Version 5.1
|
|
|
|
[CmdletBinding()]
|
|
param([string] $NodePath)
|
|
|
|
Set-StrictMode -Version Latest
|
|
$ErrorActionPreference = 'Stop'
|
|
|
|
if ([string]::IsNullOrWhiteSpace($NodePath)) {
|
|
$command = Get-Command node -CommandType Application -ErrorAction SilentlyContinue |
|
|
Select-Object -First 1
|
|
if ($null -ne $command) {
|
|
$NodePath = $command.Source
|
|
}
|
|
else {
|
|
$bundledNode = Join-Path $env:USERPROFILE `
|
|
'.cache\codex-runtimes\codex-primary-runtime\dependencies\node\bin\node.exe'
|
|
if (Test-Path -LiteralPath $bundledNode -PathType Leaf) {
|
|
$NodePath = $bundledNode
|
|
}
|
|
}
|
|
|
|
if ([string]::IsNullOrWhiteSpace($NodePath)) {
|
|
throw 'Node.js was not found. Pass an absolute executable path with -NodePath.'
|
|
}
|
|
}
|
|
|
|
if (-not [IO.Path]::IsPathRooted($NodePath) -or
|
|
-not (Test-Path -LiteralPath $NodePath -PathType Leaf)) {
|
|
throw 'NodePath must identify an existing absolute node executable.'
|
|
}
|
|
|
|
$repositoryRoot = [IO.Path]::GetFullPath((Join-Path $PSScriptRoot '..'))
|
|
$appScript = Join-Path $repositoryRoot 'src\MBN_STOCK_WEBVIEW.LegacyParityApp\Web\app.js'
|
|
$testRoot = Join-Path $repositoryRoot 'tests\LegacyParityWeb'
|
|
$testFiles = @(
|
|
Get-ChildItem -LiteralPath $testRoot -Filter '*.test.cjs' -File |
|
|
Sort-Object -Property FullName |
|
|
Select-Object -ExpandProperty FullName
|
|
)
|
|
|
|
if ($testFiles.Count -eq 0) {
|
|
throw 'No Legacy parity Web test files were found.'
|
|
}
|
|
|
|
& $NodePath --check $appScript
|
|
if ($LASTEXITCODE -ne 0) {
|
|
throw "Legacy parity JavaScript syntax validation failed with exit code $LASTEXITCODE."
|
|
}
|
|
|
|
& $NodePath --test @testFiles
|
|
if ($LASTEXITCODE -ne 0) {
|
|
throw "Legacy parity Web tests failed with exit code $LASTEXITCODE."
|
|
}
|