import { describe, expect, it, vi } from 'vitest'; import { mock } from 'vitest-mock-extended'; import { setFoldersFromConfig } from '../../../src/card-controller/config/load-folders'; import type { FoldersManager } from '../../../src/card-controller/folders/manager'; import { createConfig } from '../../config/test-utils'; import { createCardAPI, createFolder } from '../../test-utils'; describe('setFoldersFromConfig', () => { it('should replace folders', () => { const api = createCardAPI(); const foldersManager = mock(); vi.mocked(api.getFoldersManager).mockReturnValue(foldersManager); const folders = [createFolder()]; const config = createConfig({ folders, }); vi.mocked(api.getConfigManager().getConfig).mockReturnValue(config); setFoldersFromConfig(api); expect(foldersManager.deleteFolders).toHaveBeenCalled(); expect(foldersManager.addFolders).toHaveBeenCalledWith(folders); }); it('should handle exceptions', () => { const api = createCardAPI(); const foldersManager = mock(); vi.mocked(api.getFoldersManager).mockReturnValue(foldersManager); const error = new Error('test error'); vi.mocked(foldersManager.addFolders).mockImplementation(() => { throw error; }); const config = createConfig({ folders: [createFolder()], }); vi.mocked(api.getConfigManager().getConfig).mockReturnValue(config); setFoldersFromConfig(api); expect(api.getIssueManager().trigger).toHaveBeenCalledWith('config_error', { error, }); }); });