MCPcopy
hub / github.com/benbjohnson/litestream / TestServer_HandleSyncStatus

Function TestServer_HandleSyncStatus

server_test.go:660–707  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

658}
659
660func TestServer_HandleSyncStatus(t *testing.T) {
661 t.Run("AllDatabases", func(t *testing.T) {
662 db, sqldb := testingutil.MustOpenDBs(t)
663 defer testingutil.MustCloseDBs(t, db, sqldb)
664
665 store := litestream.NewStore([]*litestream.DB{db}, litestream.CompactionLevels{{Level: 0}})
666 store.CompactionMonitorEnabled = false
667 require.NoError(t, store.Open(t.Context()))
668 defer store.Close(t.Context())
669
670 server := litestream.NewServer(store)
671 server.SocketPath = testSocketPath(t)
672 require.NoError(t, server.Start())
673 defer server.Close()
674
675 client := newSocketClient(t, server.SocketPath)
676 resp, err := client.Get("http://localhost/debug/sync-status")
677 require.NoError(t, err)
678 defer resp.Body.Close()
679
680 require.Equal(t, http.StatusOK, resp.StatusCode)
681
682 var result litestream.SyncDiagnosticsResponse
683 require.NoError(t, json.NewDecoder(resp.Body).Decode(&result))
684 require.Len(t, result.Databases, 1)
685 require.Equal(t, db.Path(), result.Databases[0].Path)
686 require.False(t, result.Databases[0].Active)
687 })
688
689 t.Run("DatabaseNotFound", func(t *testing.T) {
690 store := litestream.NewStore(nil, litestream.CompactionLevels{{Level: 0}})
691 store.CompactionMonitorEnabled = false
692 require.NoError(t, store.Open(t.Context()))
693 defer store.Close(t.Context())
694
695 server := litestream.NewServer(store)
696 server.SocketPath = testSocketPath(t)
697 require.NoError(t, server.Start())
698 defer server.Close()
699
700 client := newSocketClient(t, server.SocketPath)
701 resp, err := client.Get("http://localhost/debug/sync-status?path=/nonexistent/db")
702 require.NoError(t, err)
703 defer resp.Body.Close()
704
705 require.Equal(t, http.StatusNotFound, resp.StatusCode)
706 })
707}
708
709func newSocketClient(t *testing.T, socketPath string) *http.Client {
710 t.Helper()

Callers

nothing calls this directly

Calls 13

OpenMethod · 0.95
CloseMethod · 0.95
StartMethod · 0.95
CloseMethod · 0.95
MustOpenDBsFunction · 0.92
MustCloseDBsFunction · 0.92
NewStoreFunction · 0.92
NewServerFunction · 0.92
newSocketClientFunction · 0.85
testSocketPathFunction · 0.70
RunMethod · 0.45
CloseMethod · 0.45

Tested by

no test coverage detected