UNPKG

nestjs-request-deduplication

Version:

[![npm version](https://badge.fury.io/js/nestjs-request-deduplication.svg)](https://www.npmjs.com/package/nestjs-request-deduplication) [![CI](https://github.com/daniyel/nestjs-request-deduplication/actions/workflows/pr-checks.yml/badge.svg)](https://gith

56 lines (55 loc) 2.46 kB
import { __awaiter } from "tslib"; import { MemoryAdapter } from './memory.adapter'; import Keyv from 'keyv'; jest.mock('keyv'); describe('MemoryAdapter', () => { let adapter; const mockOptions = {}; beforeEach(() => { jest.clearAllMocks(); adapter = new MemoryAdapter(mockOptions); }); describe('init', () => { it('should initialize keyv with memory store', () => __awaiter(void 0, void 0, void 0, function* () { yield adapter.init(); expect(Keyv).toHaveBeenCalledWith({ namespace: 'request-deduplication', }); })); }); describe('get', () => { it('should retrieve value from storage', () => __awaiter(void 0, void 0, void 0, function* () { const mockValue = { data: 'test' }; const mockGet = jest.fn().mockResolvedValue(mockValue); Keyv.mockImplementation(() => ({ get: mockGet })); yield adapter.init(); const result = yield adapter.get('test-key'); expect(mockGet).toHaveBeenCalledWith('test-key'); expect(result).toEqual(mockValue); })); it('should throw error for non-existent key', () => __awaiter(void 0, void 0, void 0, function* () { const mockGet = jest.fn().mockResolvedValue(undefined); Keyv.mockImplementation(() => ({ get: mockGet })); yield adapter.init(); yield expect(adapter.get('non-existent-key')).rejects.toThrow('Key non-existent-key not found'); })); }); describe('set', () => { it('should store value with ttl', () => __awaiter(void 0, void 0, void 0, function* () { const mockSet = jest.fn().mockResolvedValue(undefined); Keyv.mockImplementation(() => ({ set: mockSet })); yield adapter.init(); yield adapter.set('test-key', 'test-value', 1000); expect(mockSet).toHaveBeenCalledWith('test-key', 'test-value', 1000); })); }); describe('delete', () => { it('should delete value from storage', () => __awaiter(void 0, void 0, void 0, function* () { const mockDelete = jest.fn().mockResolvedValue(undefined); Keyv.mockImplementation(() => ({ delete: mockDelete })); yield adapter.init(); yield adapter.delete('test-key'); expect(mockDelete).toHaveBeenCalledWith('test-key'); })); }); });