1
import { useEnv } from '@directus/env';
2
import type Keyv from 'keyv';
3
import { afterEach, expect, test, vi } from 'vitest';
4
import type { MutationOptions } from '../types/items.js';
5
import { shouldClearCache } from './should-clear-cache.js';
7
vi.mock('@directus/env');
13
const mockedCache = {} as Keyv;
14
const mockedMutationOptions = {} as MutationOptions;
16
test('should return false when cache is not provided', () => {
17
vi.mocked(useEnv).mockReturnValue({ CACHE_AUTO_PURGE: true });
19
expect(shouldClearCache(null, mockedMutationOptions)).toBe(false);
22
test('should return true when cache is provided', () => {
23
vi.mocked(useEnv).mockReturnValue({ CACHE_AUTO_PURGE: true });
25
expect(shouldClearCache(mockedCache, mockedMutationOptions)).toBe(true);
28
test('should return false when CACHE_AUTO_PURGE is false', () => {
29
vi.mocked(useEnv).mockReturnValue({ CACHE_AUTO_PURGE: false });
31
expect(shouldClearCache(mockedCache, mockedMutationOptions)).toBe(false);
34
test('should return true when CACHE_AUTO_PURGE is true', () => {
35
vi.mocked(useEnv).mockReturnValue({ CACHE_AUTO_PURGE: true });
37
expect(shouldClearCache(mockedCache, mockedMutationOptions)).toBe(true);
40
test('should return false when MutationOptions.autoPurgeCache is false', () => {
41
vi.mocked(useEnv).mockReturnValue({ CACHE_AUTO_PURGE: true });
43
expect(shouldClearCache(mockedCache, { autoPurgeCache: false })).toBe(false);
46
test('should return true when MutationOptions.autoPurgeCache is not false', () => {
47
vi.mocked(useEnv).mockReturnValue({ CACHE_AUTO_PURGE: true });
49
expect(shouldClearCache(mockedCache, { autoPurgeCache: undefined })).toBe(true);
52
test('should return false when collection is provided and in ignore list', () => {
53
vi.mocked(useEnv).mockReturnValue({ CACHE_AUTO_PURGE: true, CACHE_AUTO_PURGE_IGNORE_LIST: 'ignored' });
55
expect(shouldClearCache(mockedCache, mockedMutationOptions, 'ignored')).toBe(false);
58
test('should return true when collection is provided and not in ignore list', () => {
59
vi.mocked(useEnv).mockReturnValue({ CACHE_AUTO_PURGE: true, CACHE_AUTO_PURGE_IGNORE_LIST: 'ignored' });
61
expect(shouldClearCache(mockedCache, mockedMutationOptions, 'not-ignored')).toBe(true);