nestjs-request-deduplication
Version:
[](https://www.npmjs.com/package/nestjs-request-deduplication) [](https://gith
56 lines (55 loc) • 2.46 kB
JavaScript
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');
}));
});
});