Skip to content

Commit a626a21

Browse files
committed
test(useConnectQuery): test for when QueryResult is passed, the initial data is available immediately
1 parent 1d2fc5a commit a626a21

File tree

1 file changed

+21
-0
lines changed

1 file changed

+21
-0
lines changed

packages/react/src/data-connect/useConnectQuery.test.tsx

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import {
88
} from "@/dataconnect/default-connector";
99
import { firebaseApp } from "~/testing-utils";
1010
import { queryClient, wrapper } from "../../utils";
11+
import { executeQuery } from "firebase/data-connect";
1112

1213
// initialize firebase app
1314
firebaseApp;
@@ -139,11 +140,31 @@ describe("useConnectQuery", () => {
139140
wrapper,
140141
});
141142

143+
expect(result.current.isLoading).toBe(true);
144+
142145
await waitFor(() => expect(result.current.isSuccess).toBe(true));
143146

144147
expect(result.current.data).toBeDefined();
145148
expect(result.current.data).toHaveProperty("ref");
146149
expect(result.current.data).toHaveProperty("source");
147150
expect(result.current.data).toHaveProperty("fetchTime");
148151
});
152+
153+
test("avails the data immediately when QueryResult is passed", async () => {
154+
const queryResult = await executeQuery(listMoviesRef());
155+
156+
const { result } = renderHook(() => useConnectQuery(queryResult), {
157+
wrapper,
158+
});
159+
160+
// Should not enter a loading state
161+
expect(result.current.isLoading).toBe(false);
162+
163+
expect(result.current.isSuccess).toBe(true);
164+
165+
expect(result.current.data).toBeDefined();
166+
expect(result.current.data).toHaveProperty("ref");
167+
expect(result.current.data).toHaveProperty("source");
168+
expect(result.current.data).toHaveProperty("fetchTime");
169+
});
149170
});

0 commit comments

Comments
 (0)