tests/Get-LastBootTime.Tests.ps1

Describe 'Get-LastBootTime' {
    Context 'When retrieving the last boot time' {
        It 'Should return a valid DateTime object' {
            Mock -CommandName Get-CimInstance -MockWith {
                [PSCustomObject]@{ LastBootUpTime = (Get-Date).AddDays(-1) }
            }
            $result = Get-LastBootTime
            $result | Should -BeOfType [string]
            $result | Should -Match '^\d{2} \w+ \d{4} \d{2}:\d{2}:\d{2}$' -Because "The output should be a formatted date string."
        }

        It 'Should handle errors gracefully if CIM query fails' {
            Mock -CommandName Get-CimInstance -MockWith { throw "CIM query failed" }
            { Get-LastBootTime } | Should -Throw -ExpectedMessage "CIM query failed"
        }
    }
}