Endjin.GitHubActions.Tests.ps1

$ErrorActionPreference = 'Stop'
$here = Split-Path -Parent $MyInvocation.MyCommand.Path

Import-Module $here/Endjin.GitHubActions.psd1 -Force
function foo {
    param (
        [Parameter()]
        [JsonTransform()]
        [string[]] $list
    )
 
    return $list
}

Describe 'Module tests' {

    It 'should expose the JsonTransformAttribute class when importing the module' {
        $res = $(foo -list '["foo","bar"]')
        $res.Count | Should -Be 2
    }
}

Describe 'Packaging/publishing tests' {
    It 'should successfully create the nupkg when publishing the module' {
        {
            $tempDir = New-Item -ItemType Directory "TestDrive:\testrepo"
            try {
                $repoName = $tempDir.Name
                $repoPath = $tempDir.FullName

                Register-PSRepository -Name $repoName -SourceLocation $repoPath -PublishLocation $repoPath -InstallationPolicy 'Trusted'
                Publish-Module -Name (Join-Path $here "Endjin.GitHubActions.psd1") -Repository $repoName -Verbose
            }
            finally {
                Unregister-PSRepository -Name $repoName -ErrorAction SilentlyContinue
            } 
        } | Should -Not -Throw
    }
}