Track HiveGrid Cloud planning reference
This commit is contained in:
1 parent
b3d5ea6764
commit
e341c5938a
5784 files changed
+1104929
-3
No files matched your search
@@ -0,0 +1,52 @@
|
||||
import { afterEach, describe, expect, test, vi } from "vitest";
|
||||
|
||||
import { __resetSharedStoreForTests, __setSharedStoreFactoryForTests, getSharedStore } from "./shared-store.server";
|
||||
|
||||
afterEach(() => {
|
||||
__resetSharedStoreForTests();
|
||||
});
|
||||
|
||||
describe("web shared-store singleton", () => {
|
||||
test("memoizes the factory result", () => {
|
||||
const factory = vi.fn(() => ({
|
||||
namespace: "web",
|
||||
ttlDefault: undefined,
|
||||
adapter: {} as never,
|
||||
key: (s: string) => s,
|
||||
get: async () => null,
|
||||
set: async () => true,
|
||||
del: async () => 0,
|
||||
incr: async () => 0,
|
||||
expire: async () => true,
|
||||
mget: async () => [],
|
||||
scan: async function* () {},
|
||||
publish: async () => 0,
|
||||
subscribe: async () => async () => undefined,
|
||||
zAdd: async () => 0,
|
||||
zRemRangeByScore: async () => 0,
|
||||
zCard: async () => 0,
|
||||
eval: async () => null,
|
||||
close: async () => undefined,
|
||||
}));
|
||||
__setSharedStoreFactoryForTests(factory);
|
||||
|
||||
const first = getSharedStore();
|
||||
const second = getSharedStore();
|
||||
expect(first).toBe(second);
|
||||
expect(factory).toHaveBeenCalledTimes(1);
|
||||
});
|
||||
|
||||
test("returns a memory-backed store when REDIS_URL is unset", async () => {
|
||||
const originalRedisUrl = process.env.REDIS_URL;
|
||||
delete process.env.REDIS_URL;
|
||||
__resetSharedStoreForTests();
|
||||
try {
|
||||
const store = getSharedStore();
|
||||
expect(store.namespace).toBe("web");
|
||||
await store.set("ping", "pong");
|
||||
expect(await store.get("ping")).toBe("pong");
|
||||
} finally {
|
||||
if (originalRedisUrl !== undefined) process.env.REDIS_URL = originalRedisUrl;
|
||||
}
|
||||
});
|
||||
});
|
||||
Reference in new issue
Block a user