Tests/Unit/Private/New-SCAQueryString.Tests.ps1

Import-Module (Join-Path $PSScriptRoot '../../../psSCA.psd1') -Force

Describe 'New-SCAQueryString' {
    InModuleScope psSCA {
        It 'returns an empty string for no parameters' {
            New-SCAQueryString -Parameters @{} | Should -Be ''
        }

        It 'builds a query string from scalar values' {
            $result = New-SCAQueryString -Parameters @{ status = 'Pending' }
            $result | Should -Be 'status=Pending'
        }

        It 'omits keys with null, empty string, or empty array values' {
            $result = New-SCAQueryString -Parameters @{
                status = 'Pending'
                note   = $null
                blank  = ''
                tags   = @()
            }
            $result | Should -Be 'status=Pending'
        }

        It 'URL-encodes keys and values' {
            $result = New-SCAQueryString -Parameters @{ 'a b' = 'c&d' }
            $result | Should -Be 'a%20b=c%26d'
        }

        It 'emits repeated key=value pairs for array values' {
            $result = New-SCAQueryString -Parameters @{ status = @('Pending', 'Approved') }
            $result | Should -Be 'status=Pending&status=Approved'
        }
    }
}