tests/ManifestCategory.Tests.ps1

#Requires -Modules @{ ModuleName = 'Pester'; ModuleVersion = '5.0.0' }

$script:RepoRoot = Split-Path -Parent $PSScriptRoot

BeforeAll {
    $script:RepoRoot = Split-Path -Parent $PSScriptRoot
    . (Join-Path $script:RepoRoot 'src/pipeline/Get-ScoutCollector.ps1')
    . (Join-Path $script:RepoRoot 'src/pipeline/Get-ScoutCollectorDefinition.ps1')
}

Describe 'v3 manifest category modules — <Category>' -ForEach @(
    Get-ChildItem (Join-Path $script:RepoRoot 'manifests/collectors') -Directory | Sort-Object Name |
        ForEach-Object { @{ Category = $_.Name; Path = $_.FullName } }
) {
    It 'has at least one valid collector definition' {
        $Collectors = @(Get-ScoutCollector -DefinitionRoot (Join-Path $script:RepoRoot 'manifests/collectors') -Category $Category)
        $Collectors.Count | Should -BeGreaterThan 0
        foreach ($Collector in $Collectors) {
            { Get-ScoutCollectorDefinition -Path $Collector.DefinitionPath } | Should -Not -Throw
        }
    }
}