tests/Test-NewAzResourceGroup.Tests.ps1

Describe "New-AzResourceGroup" {
    BeforeAll { 
        Import-Module "$PSScriptRoot/../az-bootstrap.psd1" -Force
    }

    InModuleScope 'az-bootstrap' {
        It "Calls az group create with correct parameters" {
            # Mock 'az group create ...'
            Mock az -ParameterFilter { $args -contains 'group' -and $args -contains 'create' } -MockWith { return '{"name":"rg-test", "location":"eastus"}' }

            $result = New-AzResourceGroup -ResourceGroupName "rg-test" -Location "eastus"
            $result.name | Should -Be "rg-test"

            Assert-MockCalled az -ParameterFilter { $args -contains 'group' -and $args -contains 'create' -and $args -contains '--name' -and $args -contains 'rg-test' -and $args -contains '--location' -and $args -contains 'eastus' } -Exactly 1 -Scope It
        }

        It "Throws if az fails" {
            # Mock 'az group create ...' to fail
            Mock az -ParameterFilter { $args -contains 'group' -and $args -contains 'create' } -MockWith { throw "az group create failed" }

            { New-AzResourceGroup -ResourceGroupName "fail" -Location "eastus" } | Should -Throw
        }
    }
}