mirror of
https://github.com/rcourtman/Pulse.git
synced 2026-05-07 08:57:12 +00:00
70 lines
2.3 KiB
Go
70 lines
2.3 KiB
Go
package config
|
|
|
|
import (
|
|
"bytes"
|
|
"os"
|
|
"path/filepath"
|
|
"testing"
|
|
)
|
|
|
|
func TestQuickstartStateSaveAndLoad(t *testing.T) {
|
|
dir := t.TempDir()
|
|
persistence := NewConfigPersistence(dir)
|
|
|
|
expiresAt := int64(1774449000)
|
|
lastSyncedAt := int64(1774448000)
|
|
state := QuickstartState{
|
|
QuickstartToken: "qst_live_test_123",
|
|
QuickstartTokenExpiresAt: &expiresAt,
|
|
QuickstartCreditsTotal: 25,
|
|
QuickstartCreditsRemaining: 17,
|
|
LastSyncedAt: &lastSyncedAt,
|
|
}
|
|
|
|
if err := persistence.SaveQuickstartState(state); err != nil {
|
|
t.Fatalf("SaveQuickstartState: %v", err)
|
|
}
|
|
|
|
loaded, err := persistence.LoadQuickstartState()
|
|
if err != nil {
|
|
t.Fatalf("LoadQuickstartState: %v", err)
|
|
}
|
|
if loaded.QuickstartToken != state.QuickstartToken {
|
|
t.Fatalf("QuickstartToken = %q, want %q", loaded.QuickstartToken, state.QuickstartToken)
|
|
}
|
|
if loaded.QuickstartCreditsRemaining != state.QuickstartCreditsRemaining {
|
|
t.Fatalf("QuickstartCreditsRemaining = %d, want %d", loaded.QuickstartCreditsRemaining, state.QuickstartCreditsRemaining)
|
|
}
|
|
if loaded.QuickstartCreditsTotal != state.QuickstartCreditsTotal {
|
|
t.Fatalf("QuickstartCreditsTotal = %d, want %d", loaded.QuickstartCreditsTotal, state.QuickstartCreditsTotal)
|
|
}
|
|
if loaded.QuickstartTokenExpiresAt == nil || *loaded.QuickstartTokenExpiresAt != expiresAt {
|
|
t.Fatalf("QuickstartTokenExpiresAt = %v, want %d", loaded.QuickstartTokenExpiresAt, expiresAt)
|
|
}
|
|
if loaded.LastSyncedAt == nil || *loaded.LastSyncedAt != lastSyncedAt {
|
|
t.Fatalf("LastSyncedAt = %v, want %d", loaded.LastSyncedAt, lastSyncedAt)
|
|
}
|
|
|
|
raw, err := os.ReadFile(filepath.Join(dir, "quickstart.enc"))
|
|
if err != nil {
|
|
t.Fatalf("ReadFile(quickstart.enc): %v", err)
|
|
}
|
|
if bytes.Contains(raw, []byte(state.QuickstartToken)) {
|
|
t.Fatal("quickstart.enc should not contain the raw quickstart token")
|
|
}
|
|
}
|
|
|
|
func TestLoadQuickstartState_MissingReturnsEmptyState(t *testing.T) {
|
|
persistence := NewConfigPersistence(t.TempDir())
|
|
|
|
loaded, err := persistence.LoadQuickstartState()
|
|
if err != nil {
|
|
t.Fatalf("LoadQuickstartState: %v", err)
|
|
}
|
|
if loaded == nil {
|
|
t.Fatal("expected empty quickstart state, got nil")
|
|
}
|
|
if loaded.QuickstartToken != "" || loaded.QuickstartCreditsRemaining != 0 {
|
|
t.Fatalf("expected zero-value quickstart state, got %#v", loaded)
|
|
}
|
|
}
|