UNPKG

@furystack/shades-common-components

Version:

Common UI components for FuryStack Shades

44 lines 1.41 kB
import { sleepAsync } from '@furystack/utils'; import { describe, expect, it, vi } from 'vitest'; import { promisifyAnimation } from './promisify-animation.js'; describe('promisifyAnimation', () => { it('should trigger the element animation', async () => { const el = document.createElement('div'); const onfinish = vi.fn(() => { }); const oncancel = vi.fn(); const animate = vi.fn(() => { const animation = { onfinish, oncancel, }; sleepAsync(100) .then(() => animation.onfinish()) .catch(() => { /** */ }); return animation; }); Object.assign(el, { animate }); const keyframes = [ { color: 'black', }, { color: 'red', }, ]; const options = { duration: 1 }; await promisifyAnimation(el, keyframes, options); expect(animate).toBeCalledWith(keyframes, options); }); it('should reject if no element is provided', async () => { expect.assertions(1); try { await promisifyAnimation(null, [], {}); } catch (error) { expect(error.message).toBe('No element provided'); } }); }); //# sourceMappingURL=promisify-animation.spec.js.map