diff --git a/src/storage/web-api.ts b/src/storage/web-api.ts index 4c21097..ab86cf0 100644 --- a/src/storage/web-api.ts +++ b/src/storage/web-api.ts @@ -21,7 +21,7 @@ import type { StorageValue } from './types'; * @param prefix The prefix to index the storage. Useful to prevent collision between * multiple places using the same storage. */ -export function buildWebStorage(storage: Storage, prefix = '') { +export function buildWebStorage(storage: Storage, prefix = 'axios-cache-') { return buildStorage({ find: (key) => { const json = storage.getItem(prefix + key); diff --git a/test/storage/web.test.ts b/test/storage/web.test.ts index c3cddfe..a765094 100644 --- a/test/storage/web.test.ts +++ b/test/storage/web.test.ts @@ -1,6 +1,7 @@ /** @jest-environment jsdom */ import { buildWebStorage } from '../../src/storage/web-api'; +import { mockAxios } from '../mocks/axios'; import { testStorageQuota } from './quota'; import { testStorage } from './storages'; @@ -15,4 +16,21 @@ describe('tests web storages', () => { localStorage.clear(); sessionStorage.clear(); }); + + it('Should use a key prefix by default', async () => { + const storage = sessionStorage; // does not matter any implementation details + + storage.setItem('test-key', '1'); + + const axios = mockAxios({ + storage: buildWebStorage(storage) + }); + + await axios.get('url', { + id: 'test-key' + }); + + expect(storage.getItem('test-key')).toBe('1'); + expect(axios.storage.get('test-key')).not.toBe('1'); + }); });