request-context-cache.service.spec.ts 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. import { RequestContext } from '../api';
  2. import { RequestContextCacheService } from './request-context-cache.service';
  3. describe('Request context cache', () => {
  4. let cache: RequestContextCacheService;
  5. beforeEach(() => {
  6. cache = new RequestContextCacheService();
  7. });
  8. it('stores and retrieves a multiple values', async () => {
  9. const ctx = RequestContext.empty();
  10. await cache.set(ctx, 'test', 1);
  11. await cache.set(ctx, 'test2', 2);
  12. expect(await cache.get(ctx, 'test')).toBe(1);
  13. expect(await cache.get(ctx, 'test2')).toBe(2);
  14. });
  15. it('can use objects as keys', async () => {
  16. const ctx = RequestContext.empty();
  17. const x = {};
  18. await cache.set(ctx, x, 1);
  19. expect(await cache.get(ctx, x)).toBe(1);
  20. });
  21. it('uses separate stores per context', async () => {
  22. const ctx = RequestContext.empty();
  23. const ctx2 = RequestContext.empty();
  24. await cache.set(ctx, 'test', 1);
  25. await cache.set(ctx2, 'test', 2);
  26. expect(await cache.get(ctx, 'test')).toBe(1);
  27. expect(await cache.get(ctx2, 'test')).toBe(2);
  28. });
  29. });