import { mkdtempSync, rmSync } from 'node:fs' import { tmpdir } from 'node:os' import { join } from 'node:path' import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { createManager } from '../../src/manager.js' import { createRegistry } from '../../src/registry.js' describe('createManager', () => { let dir: string beforeEach(() => { dir = mkdtempSync(join(tmpdir(), 'esmole-manager-')) vi.spyOn(console, 'error').mockImplementation(() => {}) }) afterEach(() => { rmSync(dir, { recursive: true, force: true }) vi.restoreAllMocks() }) it('builds a manager exposing get/invalidate/disposeAll', async () => { const registry = createRegistry({ storePath: join(dir, 'connections.json'), env: {} }) const manager = createManager(registry) expect(typeof manager.get).toBe('function') expect(typeof manager.invalidate).toBe('function') expect(typeof manager.disposeAll).toBe('function') await expect(manager.disposeAll()).resolves.toBeUndefined() }) })