.circleci/scripts/test-module.ps1

$ErrorActionPreference = "Stop"

Install-Module Pester -Force
Import-Module ./Qlik-Cli.psd1

if ((Test-ModuleManifest -Path ./Qlik-Cli.psd1).Version -ne (Get-Module -Name Qlik-Cli).Version) {
    Write-Error -Message "Version does not match"
}

New-Item `
    -ItemType Directory `
    -Path /output/test-results/pester

Invoke-Pester `
    -EnableExit `
    -OutputFile /output/test-results/pester/results.xml

$mod = Import-LocalizedData -FileName Qlik-Cli.psd1 -BaseDirectory ./
Pop-Location
$content = $mod.NestedModules + $mod.RootModule |
    ForEach-Object { Get-Content -raw $_ }
$content += "`nExport-ModuleMember -Function " +
($mod.FunctionsToExport -join ', ') +
' -Alias ' + ($mod.AliasesToExport -join ', ')
$content | Out-File ./Qlik-Cli-Merged.psm1 -Encoding utf8

Import-Module ./Qlik-Cli.psd1 -Force
$SplitCount = (Get-Command -Module Qlik-Cli).Count
Import-Module ./Qlik-Cli-Merged.psm1 -Force
$MergedCount = (Get-Command -Module Qlik-Cli-Merged).Count
if ($SplitCount -ne $MergedCount) {
    Write-Error  -Message ("Merged module contains wrong number of commands, has $MergedCount and should have $SplitCount")
}

New-Item `
    -ItemType Directory `
    -Path /output/workspace

Copy-Item ./Qlik-Cli-Merged.psm1 /output/workspace/Qlik-Cli.psm1
(Get-Module Qlik-Cli).Version.ToString() |
    Out-File /output/workspace/version -Encoding utf8