Quiero probar getSessionStorage() . Dentro getSessionStorage() estoy llamando a new RedisStore(process.env.REDIS_URL) . Esto arroja un error porque no se puede acceder a process.env.REDIS_URL fuera de un vpn.
¿Cómo puedo burlarme de RedisStore.constructor para evitar llamar a this.client.connect(); y así evitar el error?
RedisStore.js
import { createClient } from "redis"; class RedisStore { /** * @param {string} url */ constructor(url) { this.client = createClient({ url }); this.client.on("error", (err) => console.log("Redis Client Error", err)); this.client.connect(); } async storeCallback(session) {} async loadCallback(id) {} async deleteCallback(id) {} } export default RedisStore;getSessionStorage.js
import RedisStore from "./RedisStore"; const getSessionStorage = ()=> { return new RedisStore(process.env.REDIS_URL); } export default getSessionStorage;getSessionStorage.test.js
import getSessionStorage from "./getSessionStorage.js"; describe("getSessionStorage", () => { it("should pass", () => { expect(getSessionStorage()).toMatchObject({ storeCallback: expect.any(Function), loadCallback: expect.any(Function), deleteCallback: expect.any(Function) }); }); });Puedes burlarte de redis:
jest.mock('redis', () => ({ createClient : jest.fn().mockReturnValue({ on: jest.fn(), connect: jest.fn() }), }));