(t *testing.T)
| 658 | } |
| 659 | |
| 660 | func 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 | |
| 709 | func newSocketClient(t *testing.T, socketPath string) *http.Client { |
| 710 | t.Helper() |
nothing calls this directly
no test coverage detected