Tests/Unit/Private/Get-SCAPagination.Tests.ps1

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

Describe 'Get-SCAPagination' {
    InModuleScope psSCA {
        It 'returns $null when there is no continuation indicator' {
            $response = [pscustomobject]@{ items = @(1, 2, 3) }
            Get-SCAPagination -Response $response | Should -BeNullOrEmpty
        }

        It 'returns $null for a null response' {
            Get-SCAPagination -Response $null | Should -BeNullOrEmpty
        }

        It 'detects a populated nextPageDetails property' {
            $response = [pscustomobject]@{ nextPageDetails = [pscustomobject]@{ token = 'abc' } }
            Get-SCAPagination -Response $response | Should -Not -BeNullOrEmpty
        }

        It 'ignores an empty-string continuation token' {
            $response = [pscustomobject]@{ nextPageToken = '' }
            Get-SCAPagination -Response $response | Should -BeNullOrEmpty
        }

        It 'detects a populated nextLink property' {
            $response = [pscustomobject]@{ nextLink = 'https://example.test/next' }
            Get-SCAPagination -Response $response | Should -Be 'https://example.test/next'
        }
    }
}