Tests/Private/Get-Timestamp.Tests.ps1

BeforeAll {
    . "$PSScriptRoot/../../Private/Get-Timestamp.ps1"
}

Describe 'Get-Timestamp' {
    It 'Returns a string in yyyy-MM-dd HH:mm:ss format' {
        $result = Get-Timestamp
        $result | Should -Match '^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$'
    }

    It 'Returns the current time (within 2 seconds tolerance)' {
        $before = Get-Date
        $result = Get-Timestamp
        $after  = Get-Date

        $parsed = [datetime]::ParseExact($result, 'yyyy-MM-dd HH:mm:ss', $null)
        $parsed | Should -BeGreaterOrEqual $before.AddSeconds(-1)
        $parsed | Should -BeLessOrEqual $after.AddSeconds(1)
    }

    It 'Returns different values when called at different times' {
        $t1 = Get-Timestamp
        Start-Sleep -Milliseconds 1100
        $t2 = Get-Timestamp
        $t2 | Should -Not -Be $t1
    }
}