MCPcopy Create free account
hub / github.com/github/gh-aw / TestActionCacheReleasedAt

Function TestActionCacheReleasedAt

pkg/workflow/action_cache_test.go:814–852  ·  view source on GitHub ↗

TestActionCacheReleasedAt verifies that GetReleasedAt / SetReleasedAt round-trip correctly and are preserved across a Save/Load cycle.

(t *testing.T)

Source from the content-addressed store, hash-verified

812// TestActionCacheReleasedAt verifies that GetReleasedAt / SetReleasedAt
813// round-trip correctly and are preserved across a Save/Load cycle.
814func TestActionCacheReleasedAt(t *testing.T) {
815 tmpDir := testutil.TempDir(t, "test-*")
816 cache := NewActionCache(tmpDir)
817 cache.Set("owner/action", "v1", "sha1234567890123456789012345678901234567890")
818
819 // No date cached yet
820 _, ok := cache.GetReleasedAt("owner/action", "v1")
821 if ok {
822 t.Error("Expected no release date before SetReleasedAt")
823 }
824
825 // Store a date
826 ts := time.Date(2024, 3, 15, 12, 0, 0, 0, time.UTC)
827 cache.SetReleasedAt("owner/action", "v1", ts)
828
829 got, ok := cache.GetReleasedAt("owner/action", "v1")
830 if !ok {
831 t.Fatal("Expected release date after SetReleasedAt")
832 }
833 if !got.Equal(ts) {
834 t.Errorf("GetReleasedAt() = %v, want %v", got, ts)
835 }
836
837 // Persist to disk and reload
838 if err := cache.Save(); err != nil {
839 t.Fatalf("Failed to save: %v", err)
840 }
841 cache2 := NewActionCache(tmpDir)
842 if err := cache2.Load(); err != nil {
843 t.Fatalf("Failed to load: %v", err)
844 }
845 got2, ok2 := cache2.GetReleasedAt("owner/action", "v1")
846 if !ok2 {
847 t.Fatal("Expected release date to survive save/load")
848 }
849 if !got2.Equal(ts) {
850 t.Errorf("After reload: GetReleasedAt() = %v, want %v", got2, ts)
851 }
852}
853
854// TestActionCacheReleasedAtPreservedOnSHAMatch verifies that ReleasedAt is
855// preserved by Set when the SHA does not change.

Callers

nothing calls this directly

Calls 9

SetMethod · 0.95
GetReleasedAtMethod · 0.95
SetReleasedAtMethod · 0.95
SaveMethod · 0.95
LoadMethod · 0.95
TempDirFunction · 0.92
NewActionCacheFunction · 0.85
ErrorMethod · 0.45
ErrorfMethod · 0.45

Tested by

no test coverage detected