// @vitest-environment nuxt import { describe, it, expect, beforeEach } from 'vitest'; import { usePlaylistDelete } from '../use-playlist-delete'; describe('usePlaylistDelete', () => { beforeEach(() => { useNuxtApp().payload.state = {}; }); it('метка скрывает плейлист и не дублируется', () => { const { pendingIds, isPendingDelete, markPendingDelete } = usePlaylistDelete(); markPendingDelete('playlist-1'); markPendingDelete('playlist-1'); expect(pendingIds.value).toEqual([ 'playlist-1' ]); expect(isPendingDelete('playlist-1')).toBe(true); expect(isPendingDelete('playlist-2')).toBe(false); }); it('снятие метки не задевает соседние удаления', () => { const { pendingIds, markPendingDelete, unmarkPendingDelete } = usePlaylistDelete(); markPendingDelete('playlist-1'); markPendingDelete('playlist-2'); unmarkPendingDelete('playlist-1'); expect(pendingIds.value).toEqual([ 'playlist-2' ]); }); it('снятие несуществующей метки ничего не ломает', () => { const { pendingIds, unmarkPendingDelete } = usePlaylistDelete(); unmarkPendingDelete('playlist-1'); expect(pendingIds.value).toEqual([]); }); });