tests/Private/Restart-GCPInstance.Tests.ps1

BeforeAll {
    Import-Module (Resolve-Path (Join-Path $PSScriptRoot '..\..\PSCumulus.psd1')).Path -Force
}

Describe 'Restart-GCPInstance' {

    It 'resets a GCP compute instance by name and zone' {
        InModuleScope PSCumulus {
            Mock Invoke-GCloudJson { }

            Restart-GCPInstance -Name 'test-vm' -Zone 'us-central1-a' -Project 'test-proj'

            Should -Invoke Invoke-GCloudJson -Times 1 -ParameterFilter {
                $Arguments -contains 'compute' -and $Arguments -contains 'instances' -and $Arguments -contains 'reset'
            }
        }
    }

    It 'returns a GCPCloudRecord with Status Running' {
        InModuleScope PSCumulus {
            Mock Invoke-GCloudJson { }

            $result = Restart-GCPInstance -Name 'test-vm' -Zone 'us-central1-a' -Project 'test-proj'

            $result.Name | Should -Be 'test-vm'
            $result.Status | Should -Be 'Running'
            $result.Provider | Should -Be 'GCP'
            $result.Zone | Should -Be 'us-central1-a'
            $result.Project | Should -Be 'test-proj'
        }
    }
}