UNPKG

@logux/state

Version:

A tiny (152 bytes) state manager for React/Preact/Vue/Svelte with many atomic tree-shakable stores

35 lines (27 loc) 704 B
import { jest } from '@jest/globals' import '../test/set-production.js' import { createMap } from '../index.js' jest.useFakeTimers() it('combines multiple changes for the same store', () => { let changes = [] let test = createMap(() => { test.setKey('a', 1) return () => { changes.push('destroy') } }) let checks = [] let prev let unbind = test.subscribe((value, key) => { if (prev) checks.push(value === prev) prev = value changes.push(key) }) test.setKey('a', 2) test.set({ a: 3 }) test.notify('a') unbind() jest.runAllTimers() expect(changes).toEqual([undefined, 'a', 'a', 'a', 'destroy']) expect(checks).toEqual([true, true, true]) })