.circleci/scripts/test-module.ps1

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
$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