Private/Add-PlumberTaskGroup.ps1

function Add-PlumberTaskGroup {
    <#
        .SYNOPSIS
        Adds a built-in Plumber task group and its enabled children.
    #>

    [CmdletBinding()]
    param (
        [Parameter(Mandatory)]
        [hashtable]
        $TaskGroup,

        [Parameter(Mandatory)]
        [string]
        $TaskRoot
    )

    $parentRunWhen = Get-PlumberTaskRunWhen -Name $TaskGroup.Parent
    $parentShouldRun = Test-PlumberTaskShouldRun -Name $TaskGroup.Parent -RunWhen $parentRunWhen
    if (-not $parentShouldRun) {
        $parentSplat = @{
            Name     = $TaskGroup.Parent
            Path     = "$($TaskGroup.Parent)/$($TaskGroup.Parent).ps1"
            TaskRoot = $TaskRoot
            Parent   = 'Validate'
        }
        Add-PlumberTask @parentSplat
        return
    }

    $pesterUnitRuns = $true
    foreach ($childTask in $TaskGroup.Children) {
        $childRunWhen = Get-PlumberTaskRunWhen -Name $childTask
        $childShouldRun = Test-PlumberTaskShouldRun -Name $childTask -RunWhen $childRunWhen

        if (
            $childTask -eq 'CodeCoverage' -and
            -not $pesterUnitRuns
        ) {
            continue
        }

        $childSplat = @{
            Name     = $childTask
            Path     = "$($TaskGroup.Parent)/$childTask.ps1"
            TaskRoot = $TaskRoot
            Parent   = $TaskGroup.Parent
        }
        Add-PlumberTask @childSplat

        if ($childTask -eq 'PesterUnit') {
            $pesterUnitRuns = $childShouldRun
        }
    }

    if (-not $script:PlumberTaskJobs[$TaskGroup.Parent]) {
        return
    }

    $parentSplat = @{
        Name     = $TaskGroup.Parent
        Path     = "$($TaskGroup.Parent)/$($TaskGroup.Parent).ps1"
        TaskRoot = $TaskRoot
        Parent   = 'Validate'
    }
    Add-PlumberTask @parentSplat
}