UNPKG

@node-idempotency/storage-adapter-redis

Version:
55 lines 2.19 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const src_1 = require("../../src"); const redis_memory_server_1 = require("redis-memory-server"); describe("Redis Adapter", () => { let storage; let redisServer; beforeAll(async () => { redisServer = new redis_memory_server_1.RedisMemoryServer(); const host = await redisServer.getHost(); const port = await redisServer.getPort(); const url = `redis://${host}:${port}`; storage = new src_1.RedisStorageAdapter({ url }); await storage.connect(); }); afterAll(async () => { await storage.disconnect(); await redisServer.stop(); }); describe("setIfNotExists", () => { it("should set and return true when key not exist", async () => { const res = await storage.setIfNotExists("k1", "v1"); expect(res).toBe(true); const val = await storage.get("k1"); expect(val).toBe("v1"); }); it("should not set and return false when key exist", async () => { await storage.set("k2", "v1", {}); const res = await storage.setIfNotExists("k2", "v2"); expect(res).toBe(false); const val = await storage.get("k2"); expect(val).toBe("v1"); }); }); describe("set/get", () => { it("should set and return the value on get", async () => { let val = await storage.get("k3"); expect(val).toBeUndefined(); await storage.set("k3", "v1", {}); val = await storage.get("k3"); expect(val).toBe("v1"); }); it("should set and return undefined on get when ttl expired", async () => { let val = await storage.get("k4"); expect(val).toBeUndefined(); await storage.set("k4", "v1", { ttl: 500 }); val = await storage.get("k4"); expect(val).toBe("v1"); await new Promise((resolve) => setTimeout(resolve, 1000)); val = await storage.get("k4"); expect(val).toBeUndefined(); }); }); }); //# sourceMappingURL=redis-adapter.spec.js.map