Skip to content

Утилиты тестирования

Точка входа /testing упаковывает паттерны, которые собственный тестовый набор этого пакета использует повсюду — без импорта, специфичного для тест-раннера (работает с Vitest, Jest или чем угодно ещё, поскольку просто переприсваивает обычное свойство объекта, а не использует vi.spyOn).

ts
import {
  mockStorage,
  resetStorageState,
  seedExpiredEnvelope,
  flushAsync,
} from 'vue-storage-kit/testing'
import { useStorage } from 'vue-storage-kit'

beforeEach(() => {
  resetStorageState() // очищает общий кэш экземпляров/движка между тестами
})

it('reads an existing value', async () => {
  const { adapter, restore } = mockStorage() // перенаправляет любую цель на один MemoryStorageAdapter
  await adapter.setItem('k', JSON.stringify({ v: 1, d: '"stored"', exp: null, ts: Date.now() }))

  const { value } = useStorage('k', { defaultValue: 'default', target: 'memory' })
  await flushAsync()

  expect(value.value).toBe('stored')
  restore()
})

it('treats an expired key as expired', async () => {
  const { adapter } = mockStorage()
  await seedExpiredEnvelope(adapter, 'k', 'stale') // сокращение для конверта выше, с exp в прошлом

  const { value } = useStorage('k', { defaultValue: 'default', target: 'memory' })
  await flushAsync()

  expect(value.value).toBe('default')
})

Экспорты

mockStorage

(adapter?: StorageAdapter) => { adapter, restore() }

Перенаправляет StorageAdapterFactory.get(), чтобы всегда возвращать adapter (свежий MemoryStorageAdapter по умолчанию), независимо от запрошенной цели.

resetStorageState

() => void

Очищает общий кэш экземпляров/движка useStorage() (и Vue, и React) и синглтоны StorageAdapterFactory для каждой цели.

seedEnvelope

(adapter, key, value, opts?) => Promise<void>

Пишет сырой конверт напрямую, чтобы подготовить состояние без живого экземпляра useStorage().

seedExpiredEnvelope

(adapter, key, value, opts?) => Promise<void>

seedEnvelope() с exp, по умолчанию установленным на метку времени уже в прошлом.

flushAsync

(ms?: number) => Promise<void>

Ожидаемая задержка (по умолчанию 10мс), позволяющая устояться ожидающим записям/debounce/throttle/динамическим импортам.

MemoryStorageAdapter, StorageAdapterFactory

Реэкспортированы для удобства.