51 lines
1.3 KiB
Go
51 lines
1.3 KiB
Go
package model
|
|
|
|
import (
|
|
"testing"
|
|
"time"
|
|
)
|
|
|
|
func TestStatusShowAtSetsTextAndDeadline(t *testing.T) {
|
|
var status statusMsg
|
|
now := time.Date(2026, time.March, 28, 12, 0, 0, 0, time.UTC)
|
|
|
|
status.ShowAt(now, "Saved", statusTTLMedium)
|
|
|
|
if status.text != "Saved" {
|
|
t.Fatalf("text = %q, want %q", status.text, "Saved")
|
|
}
|
|
want := now.Add(time.Duration(statusTTLMedium))
|
|
if !status.expiresAt.Equal(want) {
|
|
t.Fatalf("expiresAt = %v, want %v", status.expiresAt, want)
|
|
}
|
|
}
|
|
|
|
func TestStatusExpiresAtDeadline(t *testing.T) {
|
|
var status statusMsg
|
|
now := time.Date(2026, time.March, 28, 12, 0, 0, 0, time.UTC)
|
|
|
|
status.ShowAt(now, "Saved", statusTTLMedium)
|
|
|
|
if status.Expired(now.Add(time.Duration(statusTTLMedium) - time.Nanosecond)) {
|
|
t.Fatal("Expired() = true before deadline, want false")
|
|
}
|
|
if !status.Expired(now.Add(time.Duration(statusTTLMedium))) {
|
|
t.Fatal("Expired() = false at deadline, want true")
|
|
}
|
|
}
|
|
|
|
func TestStatusClearResetsMessage(t *testing.T) {
|
|
var status statusMsg
|
|
now := time.Date(2026, time.March, 28, 12, 0, 0, 0, time.UTC)
|
|
|
|
status.ShowAt(now, "Saved", statusTTLMedium)
|
|
status.Clear()
|
|
|
|
if status.text != "" {
|
|
t.Fatalf("text after Clear() = %q, want empty", status.text)
|
|
}
|
|
if !status.expiresAt.IsZero() {
|
|
t.Fatalf("expiresAt after Clear() = %v, want zero", status.expiresAt)
|
|
}
|
|
}
|