nestjs-request-deduplication
Version:
[](https://www.npmjs.com/package/nestjs-request-deduplication) [](https://gith
41 lines (40 loc) • 1.66 kB
JavaScript
import { __decorate } from "tslib";
import 'reflect-metadata';
import { SKIP_DEDUPLICATE_REQUEST_KEY } from '../constants';
import { SkipDeduplicateRequest } from './request-deduplication.decorator';
describe('SkipDeduplicateRequest', () => {
it('should set metadata with correct key and value', () => {
let TestClass = class TestClass {
};
TestClass = __decorate([
SkipDeduplicateRequest()
], TestClass);
const metadata = Reflect.getMetadata(SKIP_DEDUPLICATE_REQUEST_KEY, TestClass);
expect(metadata).toBe(true);
});
it('should set metadata on method level', () => {
class TestClass {
testMethod() { }
}
__decorate([
SkipDeduplicateRequest()
], TestClass.prototype, "testMethod", null);
const instance = new TestClass();
const metadata = Reflect.getMetadata(SKIP_DEDUPLICATE_REQUEST_KEY, instance.testMethod);
expect(metadata).toBe(true);
});
it('should not affect other methods or classes', () => {
class TestClass {
decoratedMethod() { }
undecoratedMethod() { }
}
__decorate([
SkipDeduplicateRequest()
], TestClass.prototype, "decoratedMethod", null);
const instance = new TestClass();
const decoratedMetadata = Reflect.getMetadata(SKIP_DEDUPLICATE_REQUEST_KEY, instance.decoratedMethod);
const undecoratedMetadata = Reflect.getMetadata(SKIP_DEDUPLICATE_REQUEST_KEY, instance.undecoratedMethod);
expect(decoratedMetadata).toBe(true);
expect(undecoratedMetadata).toBeUndefined();
});
});