@terreno/rtk 0.24.0 → 0.26.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. package/.ai/guidelines/core.md +2 -0
  2. package/dist/authSlice.d.ts.map +1 -1
  3. package/dist/authSlice.js +1 -1
  4. package/dist/authSlice.js.map +1 -1
  5. package/dist/authSlice.test.js +11 -7
  6. package/dist/authSlice.test.js.map +1 -1
  7. package/dist/betterAuthSlice.d.ts +9 -5
  8. package/dist/betterAuthSlice.d.ts.map +1 -1
  9. package/dist/betterAuthSlice.js +7 -20
  10. package/dist/betterAuthSlice.js.map +1 -1
  11. package/dist/constants.d.ts +7 -1
  12. package/dist/constants.d.ts.map +1 -1
  13. package/dist/constants.js.map +1 -1
  14. package/dist/isolated/constants.test.d.ts +2 -0
  15. package/dist/isolated/constants.test.d.ts.map +1 -0
  16. package/dist/isolated/constants.test.js +65 -0
  17. package/dist/isolated/constants.test.js.map +1 -0
  18. package/dist/mongooseSlice.test.js +0 -1
  19. package/dist/mongooseSlice.test.js.map +1 -1
  20. package/dist/sync.test.d.ts +2 -0
  21. package/dist/sync.test.d.ts.map +1 -0
  22. package/dist/sync.test.js +298 -0
  23. package/dist/sync.test.js.map +1 -0
  24. package/dist/useFeatureFlags.d.ts.map +1 -1
  25. package/dist/useFeatureFlags.js +4 -3
  26. package/dist/useFeatureFlags.js.map +1 -1
  27. package/dist/useRealtimeDebug.test.d.ts +2 -0
  28. package/dist/useRealtimeDebug.test.d.ts.map +1 -0
  29. package/dist/useRealtimeDebug.test.js +131 -0
  30. package/dist/useRealtimeDebug.test.js.map +1 -0
  31. package/dist/useServerStatus.test.js +49 -0
  32. package/dist/useServerStatus.test.js.map +1 -1
  33. package/dist/useTerrenoFeatureFlags.test.js +15 -0
  34. package/dist/useTerrenoFeatureFlags.test.js.map +1 -1
  35. package/dist/useUpgradeCheck.test.d.ts +2 -0
  36. package/dist/useUpgradeCheck.test.d.ts.map +1 -0
  37. package/dist/useUpgradeCheck.test.js +174 -0
  38. package/dist/useUpgradeCheck.test.js.map +1 -0
  39. package/dist/useUpgradeCheckNative.test.d.ts +2 -0
  40. package/dist/useUpgradeCheckNative.test.d.ts.map +1 -0
  41. package/dist/useUpgradeCheckNative.test.js +90 -0
  42. package/dist/useUpgradeCheckNative.test.js.map +1 -0
  43. package/package.json +2 -2
  44. package/src/authSlice.test.ts +20 -12
  45. package/src/authSlice.ts +1 -1
  46. package/src/betterAuthSlice.ts +19 -18
  47. package/src/constants.ts +7 -2
  48. package/src/isolated/constants.test.ts +95 -0
  49. package/src/mongooseSlice.test.ts +1 -2
  50. package/src/sync.test.ts +391 -0
  51. package/src/useFeatureFlags.ts +4 -3
  52. package/src/useRealtimeDebug.test.ts +173 -0
  53. package/src/useServerStatus.test.ts +68 -0
  54. package/src/useTerrenoFeatureFlags.test.ts +25 -0
  55. package/src/useUpgradeCheck.test.ts +226 -0
  56. package/src/useUpgradeCheckNative.test.ts +124 -0
  57. package/dist/isolated/constants.isolated.d.ts +0 -2
  58. package/dist/isolated/constants.isolated.d.ts.map +0 -1
  59. package/dist/isolated/constants.isolated.js +0 -87
  60. package/dist/isolated/constants.isolated.js.map +0 -1
  61. package/src/isolated/constants.isolated.ts +0 -92
@@ -0,0 +1,298 @@
1
+ import { describe, expect, it, mock } from "bun:test";
2
+ import { configureStore } from "@reduxjs/toolkit";
3
+ import { act, renderHook } from "@testing-library/react-native";
4
+ import React from "react";
5
+ import { Provider } from "react-redux";
6
+ import { useSyncConnection } from "./sync";
7
+ const REDUCER_PATH = "testApi";
8
+ const createFakeSocket = (connected) => {
9
+ const handlers = {};
10
+ return {
11
+ connected,
12
+ emit: mock(() => { }),
13
+ off: mock((event, cb) => {
14
+ handlers[event] = (handlers[event] ?? []).filter((h) => h !== cb);
15
+ }),
16
+ on: mock((event, cb) => {
17
+ handlers[event] = handlers[event] ?? [];
18
+ handlers[event].push(cb);
19
+ }),
20
+ trigger: (event, arg) => {
21
+ for (const cb of handlers[event] ?? []) {
22
+ cb(arg);
23
+ }
24
+ },
25
+ };
26
+ };
27
+ const createApi = (queries) => {
28
+ const dataByEndpoint = {};
29
+ if (queries) {
30
+ for (const key of Object.keys(queries)) {
31
+ const entry = queries[key];
32
+ if (entry.data) {
33
+ dataByEndpoint[entry.endpointName] = entry.data;
34
+ }
35
+ }
36
+ }
37
+ const invalidateTags = mock((tags) => ({ payload: tags, type: "api/invalidateTags" }));
38
+ const updateQueryData = mock((endpointName, _args, recipe) => {
39
+ const draft = dataByEndpoint[endpointName];
40
+ if (draft) {
41
+ recipe(draft);
42
+ }
43
+ return { type: "api/updateQueryData" };
44
+ });
45
+ const api = {
46
+ reducerPath: REDUCER_PATH,
47
+ util: { invalidateTags, updateQueryData },
48
+ };
49
+ const store = configureStore({
50
+ middleware: (getDefaultMiddleware) => getDefaultMiddleware({ immutableCheck: false, serializableCheck: false }),
51
+ reducer: {
52
+ [REDUCER_PATH]: (state = { queries: queries ?? undefined }) => state,
53
+ },
54
+ });
55
+ return { api, invalidateTags, store, updateQueryData };
56
+ };
57
+ const renderSync = (socket,
58
+ // biome-ignore lint/suspicious/noExplicitAny: test-only structural RTK Query api stub
59
+ api, store, options = {}) => {
60
+ const Wrapper = ({ children }) => React.createElement(Provider, { children, store });
61
+ return renderHook(() => useSyncConnection({
62
+ api,
63
+ debug: options.debug ?? true,
64
+ socket: socket,
65
+ tagTypes: options.tagTypes ?? ["todos"],
66
+ }), { wrapper: Wrapper });
67
+ };
68
+ const syncEvent = (overrides) => ({
69
+ collection: "todos",
70
+ id: "1",
71
+ method: "update",
72
+ ...overrides,
73
+ });
74
+ describe("useSyncConnection", () => {
75
+ it("does nothing when there is no socket", () => {
76
+ const { store, api } = createApi(null);
77
+ const { result } = renderSync(null, api, store);
78
+ expect(result.current).toBeUndefined();
79
+ });
80
+ it("subscribes to model rooms when the socket is already connected", () => {
81
+ const socket = createFakeSocket(true);
82
+ const { store, api } = createApi({});
83
+ const { unmount } = renderSync(socket, api, store, { tagTypes: ["todos", "users"] });
84
+ expect(socket.emit).toHaveBeenCalledWith("subscribe:model", "todos");
85
+ expect(socket.emit).toHaveBeenCalledWith("subscribe:model", "users");
86
+ expect(socket.on).toHaveBeenCalledWith("connect", expect.any(Function));
87
+ expect(socket.on).toHaveBeenCalledWith("sync", expect.any(Function));
88
+ unmount();
89
+ expect(socket.emit).toHaveBeenCalledWith("unsubscribe:model", "todos");
90
+ expect(socket.off).toHaveBeenCalledWith("sync", expect.any(Function));
91
+ });
92
+ it("subscribes on the connect event when not initially connected", () => {
93
+ const socket = createFakeSocket(false);
94
+ const { store, api } = createApi({});
95
+ const { unmount } = renderSync(socket, api, store);
96
+ expect(socket.emit).not.toHaveBeenCalledWith("subscribe:model", "todos");
97
+ act(() => {
98
+ socket.trigger("connect");
99
+ });
100
+ expect(socket.emit).toHaveBeenCalledWith("subscribe:model", "todos");
101
+ // Not connected on cleanup, so no unsubscribe emit.
102
+ socket.emit.mockClear();
103
+ unmount();
104
+ expect(socket.emit).not.toHaveBeenCalledWith("unsubscribe:model", "todos");
105
+ });
106
+ it("ignores events for collections that are not tracked", () => {
107
+ const socket = createFakeSocket(true);
108
+ const { store, api, invalidateTags } = createApi({});
109
+ renderSync(socket, api, store);
110
+ act(() => {
111
+ socket.trigger("sync", syncEvent({ collection: "other", method: "create" }));
112
+ });
113
+ expect(invalidateTags).not.toHaveBeenCalled();
114
+ });
115
+ it("invalidates tags for create events", () => {
116
+ const socket = createFakeSocket(true);
117
+ const { store, api, invalidateTags } = createApi({});
118
+ renderSync(socket, api, store);
119
+ act(() => {
120
+ socket.trigger("sync", syncEvent({ method: "create" }));
121
+ });
122
+ expect(invalidateTags).toHaveBeenCalledWith(["todos"]);
123
+ });
124
+ it("invalidates tags for update events without data", () => {
125
+ const socket = createFakeSocket(true);
126
+ const { store, api, invalidateTags } = createApi({});
127
+ renderSync(socket, api, store);
128
+ act(() => {
129
+ socket.trigger("sync", syncEvent({ data: undefined, method: "update" }));
130
+ });
131
+ expect(invalidateTags).toHaveBeenCalledWith(["todos"]);
132
+ });
133
+ it("invalidates tags for update events when there are no cached queries", () => {
134
+ const socket = createFakeSocket(true);
135
+ const { store, api, invalidateTags } = createApi(null);
136
+ renderSync(socket, api, store);
137
+ act(() => {
138
+ socket.trigger("sync", syncEvent({ data: { name: "new" }, method: "update" }));
139
+ });
140
+ expect(invalidateTags).toHaveBeenCalledWith(["todos"]);
141
+ });
142
+ it("patches a matching entity inside a cached list query on update", () => {
143
+ const socket = createFakeSocket(true);
144
+ const queries = {
145
+ "getTodos()": {
146
+ data: { data: [{ _id: "1", name: "old", updated: "2026-01-01T00:00:00.000Z" }], total: 1 },
147
+ endpointName: "getTodos",
148
+ originalArgs: undefined,
149
+ status: "fulfilled",
150
+ },
151
+ };
152
+ const { store, api, updateQueryData, invalidateTags } = createApi(queries);
153
+ renderSync(socket, api, store);
154
+ act(() => {
155
+ socket.trigger("sync", syncEvent({ data: { name: "new", updated: "2026-02-01T00:00:00.000Z" }, method: "update" }));
156
+ });
157
+ expect(updateQueryData).toHaveBeenCalled();
158
+ expect(queries["getTodos()"].data.data[0].name).toBe("new");
159
+ expect(invalidateTags).not.toHaveBeenCalled();
160
+ });
161
+ it("skips stale updates in a cached list query", () => {
162
+ const socket = createFakeSocket(true);
163
+ const queries = {
164
+ "getTodos()": {
165
+ data: { data: [{ _id: "1", name: "current", updated: "2026-03-01T00:00:00.000Z" }], total: 1 },
166
+ endpointName: "getTodos",
167
+ originalArgs: undefined,
168
+ status: "fulfilled",
169
+ },
170
+ };
171
+ const { store, api } = createApi(queries);
172
+ renderSync(socket, api, store);
173
+ act(() => {
174
+ socket.trigger("sync", syncEvent({ data: { name: "stale", updated: "2026-01-01T00:00:00.000Z" }, method: "update" }));
175
+ });
176
+ expect(queries["getTodos()"].data.data[0].name).toBe("current");
177
+ });
178
+ it("patches a matching single-entity cached query on update", () => {
179
+ const socket = createFakeSocket(true);
180
+ const queries = {
181
+ "getTodoById(1)": {
182
+ data: { _id: "1", name: "old", updated: "2026-01-01T00:00:00.000Z" },
183
+ endpointName: "getTodoById",
184
+ originalArgs: { id: "1" },
185
+ status: "fulfilled",
186
+ },
187
+ };
188
+ const { store, api, updateQueryData } = createApi(queries);
189
+ renderSync(socket, api, store);
190
+ act(() => {
191
+ socket.trigger("sync", syncEvent({ data: { name: "new", updated: "2026-02-01T00:00:00.000Z" }, method: "update" }));
192
+ });
193
+ expect(updateQueryData).toHaveBeenCalled();
194
+ expect(queries["getTodoById(1)"].data.name).toBe("new");
195
+ });
196
+ it("skips stale updates for a single-entity cached query", () => {
197
+ const socket = createFakeSocket(true);
198
+ const queries = {
199
+ "getTodoById(1)": {
200
+ data: { _id: "1", name: "current", updated: "2026-03-01T00:00:00.000Z" },
201
+ endpointName: "getTodoById",
202
+ originalArgs: { id: "1" },
203
+ status: "fulfilled",
204
+ },
205
+ };
206
+ const { store, api, invalidateTags } = createApi(queries);
207
+ renderSync(socket, api, store);
208
+ act(() => {
209
+ socket.trigger("sync", syncEvent({ data: { name: "stale", updated: "2026-01-01T00:00:00.000Z" }, method: "update" }));
210
+ });
211
+ expect(queries["getTodoById(1)"].data.name).toBe("current");
212
+ expect(invalidateTags).toHaveBeenCalledWith(["todos"]);
213
+ });
214
+ it("invalidates tags on update when no cached query matches", () => {
215
+ const socket = createFakeSocket(true);
216
+ const queries = {
217
+ "getOthers()": {
218
+ data: { data: [{ _id: "999", name: "unrelated" }] },
219
+ endpointName: "getOthers",
220
+ originalArgs: undefined,
221
+ status: "fulfilled",
222
+ },
223
+ "pending()": {
224
+ data: { data: [{ _id: "1" }] },
225
+ endpointName: "pending",
226
+ originalArgs: undefined,
227
+ status: "pending",
228
+ },
229
+ };
230
+ const { store, api, invalidateTags } = createApi(queries);
231
+ renderSync(socket, api, store);
232
+ act(() => {
233
+ socket.trigger("sync", syncEvent({ data: { name: "new" }, method: "update" }));
234
+ });
235
+ expect(invalidateTags).toHaveBeenCalledWith(["todos"]);
236
+ });
237
+ it("removes a deleted entity from cached list queries and decrements total", () => {
238
+ const socket = createFakeSocket(true);
239
+ const queries = {
240
+ "getTodos()": {
241
+ data: {
242
+ data: [
243
+ { _id: "1", name: "a" },
244
+ { _id: "2", name: "b" },
245
+ ],
246
+ total: 2,
247
+ },
248
+ endpointName: "getTodos",
249
+ originalArgs: undefined,
250
+ status: "fulfilled",
251
+ },
252
+ };
253
+ const { store, api, updateQueryData } = createApi(queries);
254
+ renderSync(socket, api, store);
255
+ act(() => {
256
+ socket.trigger("sync", syncEvent({ method: "delete" }));
257
+ });
258
+ expect(updateQueryData).toHaveBeenCalled();
259
+ expect(queries["getTodos()"].data.data).toHaveLength(1);
260
+ expect(queries["getTodos()"].data.total).toBe(1);
261
+ });
262
+ it("invalidates tags on delete when there are no cached queries", () => {
263
+ const socket = createFakeSocket(true);
264
+ const { store, api, invalidateTags } = createApi(null);
265
+ renderSync(socket, api, store);
266
+ act(() => {
267
+ socket.trigger("sync", syncEvent({ method: "delete" }));
268
+ });
269
+ expect(invalidateTags).toHaveBeenCalledWith(["todos"]);
270
+ });
271
+ it("invalidates tags on delete when no cached query matches", () => {
272
+ const socket = createFakeSocket(true);
273
+ const queries = {
274
+ "getOthers()": {
275
+ data: { data: [{ _id: "999" }] },
276
+ endpointName: "getOthers",
277
+ originalArgs: undefined,
278
+ status: "fulfilled",
279
+ },
280
+ };
281
+ const { store, api, invalidateTags } = createApi(queries);
282
+ renderSync(socket, api, store);
283
+ act(() => {
284
+ socket.trigger("sync", syncEvent({ method: "delete" }));
285
+ });
286
+ expect(invalidateTags).toHaveBeenCalledWith(["todos"]);
287
+ });
288
+ it("does not log sync details when debug is disabled", () => {
289
+ const socket = createFakeSocket(true);
290
+ const { store, api, invalidateTags } = createApi({});
291
+ renderSync(socket, api, store, { debug: false });
292
+ act(() => {
293
+ socket.trigger("sync", syncEvent({ method: "create" }));
294
+ });
295
+ expect(invalidateTags).toHaveBeenCalledWith(["todos"]);
296
+ });
297
+ });
298
+ //# sourceMappingURL=sync.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync.test.js","sourceRoot":"","sources":["../src/sync.test.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"useFeatureFlags.d.ts","sourceRoot":"","sources":["../src/useFeatureFlags.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,GAAG,EAAC,MAAM,8BAA8B,CAAC;AAItD,UAAU,UAAU;IAClB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,IAAI,CAAC;CACxC;AAGD,KAAK,QAAQ,GAAG,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAExC,UAAU,qBAAqB;IAC7B,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,EAAE,UAAU,CAAC;IAClB,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC;IAClC,UAAU,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;IAC3C,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE;QACP,GAAG,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,KAAK,IAAI,CAAC;QACpE,EAAE,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,KAAK,IAAI,CAAC;KACpE,GAAG,IAAI,CAAC;IACT,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAED,UAAU,2BAA2B;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,CAAC,EAAE,sBAAsB,CAAC,QAAQ,CAAC,CAAC;IAC1C,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAED;;;GAGG;AACH,eAAO,MAAM,0BAA0B,GACrC,oBAAoB,MAAM,GAAG,sBAAsB,KAClD,2BAaF,CAAC;AAEF,eAAO,MAAM,eAAe,GAC1B,KAAK,QAAQ,EACb,oBAAoB,MAAM,GAAG,sBAAsB,KAClD,qBAoGF,CAAC"}
1
+ {"version":3,"file":"useFeatureFlags.d.ts","sourceRoot":"","sources":["../src/useFeatureFlags.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,GAAG,EAAC,MAAM,8BAA8B,CAAC;AAKtD,UAAU,UAAU;IAClB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,IAAI,CAAC;CACxC;AAGD,KAAK,QAAQ,GAAG,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAExC,UAAU,qBAAqB;IAC7B,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,EAAE,UAAU,CAAC;IAClB,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC;IAClC,UAAU,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;IAC3C,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE;QACP,GAAG,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,KAAK,IAAI,CAAC;QACpE,EAAE,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,KAAK,IAAI,CAAC;KACpE,GAAG,IAAI,CAAC;IACT,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAED,UAAU,2BAA2B;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,CAAC,EAAE,sBAAsB,CAAC,QAAQ,CAAC,CAAC;IAC1C,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAED;;;GAGG;AACH,eAAO,MAAM,0BAA0B,GACrC,oBAAoB,MAAM,GAAG,sBAAsB,KAClD,2BAaF,CAAC;AAEF,eAAO,MAAM,eAAe,GAC1B,KAAK,QAAQ,EACb,oBAAoB,MAAM,GAAG,sBAAsB,KAClD,qBAoGF,CAAC"}
@@ -1,3 +1,4 @@
1
+ import { DateTime } from "luxon";
1
2
  import { useCallback, useEffect, useMemo, useRef } from "react";
2
3
  import { useTerrenoFeatureFlags } from "./useTerrenoFeatureFlags";
3
4
  /**
@@ -32,7 +33,7 @@ export const useFeatureFlags = (api, basePathOrOptions) => {
32
33
  if (!isLoading || fetchStartedAtRef.current !== null) {
33
34
  return;
34
35
  }
35
- fetchStartedAtRef.current = Date.now();
36
+ fetchStartedAtRef.current = DateTime.now().toMillis();
36
37
  console.debug("[feature-flags] flagConfiguration request started", {
37
38
  basePath,
38
39
  });
@@ -41,7 +42,7 @@ export const useFeatureFlags = (api, basePathOrOptions) => {
41
42
  if (!error || fetchStartedAtRef.current === null) {
42
43
  return;
43
44
  }
44
- const durationMs = Date.now() - fetchStartedAtRef.current;
45
+ const durationMs = DateTime.now().toMillis() - fetchStartedAtRef.current;
45
46
  fetchStartedAtRef.current = null;
46
47
  console.debug("[feature-flags] flagConfiguration request failed", {
47
48
  basePath,
@@ -64,7 +65,7 @@ export const useFeatureFlags = (api, basePathOrOptions) => {
64
65
  if (isLoading) {
65
66
  return;
66
67
  }
67
- const durationMs = Date.now() - fetchStartedAtRef.current;
68
+ const durationMs = DateTime.now().toMillis() - fetchStartedAtRef.current;
68
69
  fetchStartedAtRef.current = null;
69
70
  console.debug("[feature-flags] flagConfiguration request completed", {
70
71
  basePath,
@@ -1 +1 @@
1
- {"version":3,"file":"useFeatureFlags.js","sourceRoot":"","sources":["../src/useFeatureFlags.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useFeatureFlags.js","sourceRoot":"","sources":["../src/useFeatureFlags.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=useRealtimeDebug.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useRealtimeDebug.test.d.ts","sourceRoot":"","sources":["../src/useRealtimeDebug.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,131 @@
1
+ import { afterEach, beforeEach, describe, expect, it, mock } from "bun:test";
2
+ import { configureStore } from "@reduxjs/toolkit";
3
+ import { act, renderHook } from "@testing-library/react-native";
4
+ import React from "react";
5
+ import { Provider } from "react-redux";
6
+ import { isWebsocketsDebugEnabled, setRealtimeDebug } from "./constants";
7
+ import { offlineReducer, setOnlineStatus } from "./offlineSlice";
8
+ import { useRealtimeDebug } from "./useRealtimeDebug";
9
+ const createTestStore = () => configureStore({
10
+ reducer: { offline: offlineReducer },
11
+ });
12
+ const createWrapper = (store) => {
13
+ const Wrapper = ({ children }) => React.createElement(Provider, { children, store });
14
+ return Wrapper;
15
+ };
16
+ const flush = async (ms = 50) => {
17
+ await act(async () => {
18
+ await new Promise((resolve) => setTimeout(resolve, ms));
19
+ });
20
+ };
21
+ describe("useRealtimeDebug", () => {
22
+ let store;
23
+ let originalFetch;
24
+ beforeEach(() => {
25
+ store = createTestStore();
26
+ originalFetch = globalThis.fetch;
27
+ });
28
+ afterEach(() => {
29
+ globalThis.fetch = originalFetch;
30
+ // Reset the module-level runtime debug flag so tests do not leak into each other.
31
+ setRealtimeDebug(false);
32
+ });
33
+ it("does not fetch when offline and returns the env-based debug value", async () => {
34
+ store.dispatch(setOnlineStatus(false));
35
+ const fetchFn = mock(async () => new Response("{}", { status: 200 }));
36
+ globalThis.fetch = fetchFn;
37
+ const { result, unmount } = renderHook(() => useRealtimeDebug("http://localhost:4000"), {
38
+ wrapper: createWrapper(store),
39
+ });
40
+ await flush();
41
+ expect(fetchFn).not.toHaveBeenCalled();
42
+ expect(result.current).toBe(false);
43
+ unmount();
44
+ });
45
+ it("enables debug when the health endpoint reports debug true", async () => {
46
+ const fetchFn = mock(async () => new Response(JSON.stringify({ debug: true }), { status: 200 }));
47
+ globalThis.fetch = fetchFn;
48
+ const { result, unmount } = renderHook(() => useRealtimeDebug("http://localhost:4000"), {
49
+ wrapper: createWrapper(store),
50
+ });
51
+ await flush();
52
+ expect(fetchFn).toHaveBeenCalled();
53
+ const callUrl = fetchFn.mock.calls[0][0];
54
+ expect(callUrl).toBe("http://localhost:4000/realtime/health");
55
+ expect(isWebsocketsDebugEnabled()).toBe(true);
56
+ expect(result.current).toBe(true);
57
+ unmount();
58
+ });
59
+ it("keeps debug disabled when the health endpoint reports debug false", async () => {
60
+ const fetchFn = mock(async () => new Response(JSON.stringify({ debug: false }), { status: 200 }));
61
+ globalThis.fetch = fetchFn;
62
+ const { result, unmount } = renderHook(() => useRealtimeDebug("http://localhost:4000"), {
63
+ wrapper: createWrapper(store),
64
+ });
65
+ await flush();
66
+ expect(fetchFn).toHaveBeenCalled();
67
+ expect(isWebsocketsDebugEnabled()).toBe(false);
68
+ expect(result.current).toBe(false);
69
+ unmount();
70
+ });
71
+ it("ignores a non-ok health response", async () => {
72
+ const fetchFn = mock(async () => new Response("error", { status: 500 }));
73
+ globalThis.fetch = fetchFn;
74
+ const { result, unmount } = renderHook(() => useRealtimeDebug("http://localhost:4000"), {
75
+ wrapper: createWrapper(store),
76
+ });
77
+ await flush();
78
+ expect(fetchFn).toHaveBeenCalled();
79
+ expect(result.current).toBe(false);
80
+ unmount();
81
+ });
82
+ it("swallows fetch errors and keeps env-based debug", async () => {
83
+ const fetchFn = mock(async () => {
84
+ throw new Error("Network error");
85
+ });
86
+ globalThis.fetch = fetchFn;
87
+ const { result, unmount } = renderHook(() => useRealtimeDebug("http://localhost:4000"), {
88
+ wrapper: createWrapper(store),
89
+ });
90
+ await flush();
91
+ expect(fetchFn).toHaveBeenCalled();
92
+ expect(result.current).toBe(false);
93
+ unmount();
94
+ });
95
+ it("does not apply the debug flag when the hook unmounts before the response resolves", async () => {
96
+ let resolveJson = () => { };
97
+ const jsonPromise = new Promise((resolve) => {
98
+ resolveJson = resolve;
99
+ });
100
+ const fetchFn = mock(async () => ({ json: () => jsonPromise, ok: true }));
101
+ globalThis.fetch = fetchFn;
102
+ const { unmount } = renderHook(() => useRealtimeDebug("http://localhost:4000"), {
103
+ wrapper: createWrapper(store),
104
+ });
105
+ // Unmount while the response body is still pending, then resolve it.
106
+ unmount();
107
+ await act(async () => {
108
+ resolveJson({ debug: true });
109
+ await jsonPromise;
110
+ await new Promise((resolve) => setTimeout(resolve, 10));
111
+ });
112
+ // The cancelled guard should prevent setRealtimeDebug from running.
113
+ expect(isWebsocketsDebugEnabled()).toBe(false);
114
+ });
115
+ it("re-runs the health check when the refresh key changes", async () => {
116
+ const fetchFn = mock(async () => new Response(JSON.stringify({ debug: false }), { status: 200 }));
117
+ globalThis.fetch = fetchFn;
118
+ const { rerender, unmount } = renderHook(({ key }) => useRealtimeDebug("http://localhost:4000", key), {
119
+ initialProps: { key: 1 },
120
+ wrapper: createWrapper(store),
121
+ });
122
+ await flush();
123
+ const firstCallCount = fetchFn.mock.calls.length;
124
+ expect(firstCallCount).toBeGreaterThan(0);
125
+ rerender({ key: 2 });
126
+ await flush();
127
+ expect(fetchFn.mock.calls.length).toBeGreaterThan(firstCallCount);
128
+ unmount();
129
+ });
130
+ });
131
+ //# sourceMappingURL=useRealtimeDebug.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useRealtimeDebug.test.js","sourceRoot":"","sources":["../src/useRealtimeDebug.test.ts"],"names":[],"mappings":"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"}
@@ -159,6 +159,55 @@ describe("useServerStatus", () => {
159
159
  expect(store.getState().offline.isOnline).toBe(false);
160
160
  unmount();
161
161
  });
162
+ it("polls again after the online interval elapses", async () => {
163
+ const fetchFn = mock(async () => new Response("ok", { status: 200 }));
164
+ globalThis.fetch = fetchFn;
165
+ const { unmount } = renderHook(() => useServerStatus({
166
+ healthUrl: "http://localhost:4000/health",
167
+ pollIntervalMs: 20,
168
+ }), { wrapper: createWrapper(store) });
169
+ // Wait long enough for several interval ticks to fire the setInterval callback.
170
+ await act(async () => {
171
+ await new Promise((resolve) => setTimeout(resolve, 120));
172
+ });
173
+ expect(fetchFn.mock.calls.length).toBeGreaterThan(1);
174
+ unmount();
175
+ });
176
+ it("aborts the in-flight health check once the request timeout fires", async () => {
177
+ const originalSetTimeout = globalThis.setTimeout;
178
+ // Fire the 4000ms abort timer synchronously so controller.abort() runs.
179
+ globalThis.setTimeout = ((handler, timeout, ...args) => {
180
+ if (timeout === 4000 && typeof handler === "function") {
181
+ handler();
182
+ return 0;
183
+ }
184
+ return originalSetTimeout(handler, timeout, ...args);
185
+ });
186
+ const fetchFn = mock((_url, init) => new Promise((_resolve, reject) => {
187
+ const signal = init?.signal;
188
+ if (signal?.aborted) {
189
+ reject(new Error("aborted"));
190
+ return;
191
+ }
192
+ signal?.addEventListener("abort", () => reject(new Error("aborted")));
193
+ }));
194
+ globalThis.fetch = fetchFn;
195
+ try {
196
+ const { unmount } = renderHook(() => useServerStatus({
197
+ healthUrl: "http://localhost:4000/health",
198
+ pollIntervalMs: 60000,
199
+ }), { wrapper: createWrapper(store) });
200
+ await act(async () => {
201
+ await new Promise((resolve) => originalSetTimeout(resolve, 50));
202
+ });
203
+ expect(fetchFn).toHaveBeenCalled();
204
+ expect(store.getState().offline.isOnline).toBe(false);
205
+ unmount();
206
+ }
207
+ finally {
208
+ globalThis.setTimeout = originalSetTimeout;
209
+ }
210
+ });
162
211
  it("triggers health check when browser fires online event", async () => {
163
212
  store.dispatch(setOnlineStatus(false));
164
213
  const fetchFn = mock(async () => new Response("ok", { status: 200 }));
@@ -1 +1 @@
1
- {"version":3,"file":"useServerStatus.test.js","sourceRoot":"","sources":["../src/useServerStatus.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useServerStatus.test.js","sourceRoot":"","sources":["../src/useServerStatus.test.ts"],"names":[],"mappings":"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"}