| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- import { beforeEach, describe, expect, it } from 'vitest';
- import { RequestContext } from '../api';
- import { RequestContextCacheService } from './request-context-cache.service';
- describe('Request context cache', () => {
- let cache: RequestContextCacheService;
- beforeEach(() => {
- cache = new RequestContextCacheService();
- });
- it('stores and retrieves a multiple values', () => {
- const ctx = RequestContext.empty();
- cache.set(ctx, 'test', 1);
- cache.set(ctx, 'test2', 2);
- expect(cache.get(ctx, 'test')).toBe(1);
- expect(cache.get(ctx, 'test2')).toBe(2);
- });
- it('uses getDefault function', async () => {
- const ctx = RequestContext.empty();
- const result = cache.get(ctx, 'test', async () => 'foo');
- expect(result instanceof Promise).toBe(true);
- expect(await result).toBe('foo');
- });
- it('can use objects as keys', () => {
- const ctx = RequestContext.empty();
- const x = {};
- cache.set(ctx, x, 1);
- expect(cache.get(ctx, x)).toBe(1);
- });
- it('uses separate stores per context', () => {
- const ctx = RequestContext.empty();
- const ctx2 = RequestContext.empty();
- cache.set(ctx, 'test', 1);
- cache.set(ctx2, 'test', 2);
- expect(cache.get(ctx, 'test')).toBe(1);
- expect(cache.get(ctx2, 'test')).toBe(2);
- });
- });
|