/**
 * @license
 * Copyright 2025 Google LLC
 * SPDX-License-Identifier: Apache-2.0
 */
import { describe, it, expect, beforeEach, afterEach, vi } from 'vitest';
import fs from 'node:fs/promises';
import { StandardFileSystemService } from './fileSystemService.js';
vi.mock('fs/promises');
describe('StandardFileSystemService', () => {
    let fileSystem;
    beforeEach(() => {
        vi.resetAllMocks();
        fileSystem = new StandardFileSystemService();
    });
    afterEach(() => {
        vi.restoreAllMocks();
    });
    describe('readTextFile', () => {
        it('should read file content using fs', async () => {
            const testContent = 'Hello, World!';
            vi.mocked(fs.readFile).mockResolvedValue(testContent);
            const result = await fileSystem.readTextFile('/test/file.txt');
            expect(fs.readFile).toHaveBeenCalledWith('/test/file.txt', 'utf-8');
            expect(result).toBe(testContent);
        });
        it('should propagate fs.readFile errors', async () => {
            const error = new Error('ENOENT: File not found');
            vi.mocked(fs.readFile).mockRejectedValue(error);
            await expect(fileSystem.readTextFile('/test/file.txt')).rejects.toThrow('ENOENT: File not found');
        });
    });
    describe('writeTextFile', () => {
        it('should write file content using fs', async () => {
            vi.mocked(fs.writeFile).mockResolvedValue();
            await fileSystem.writeTextFile('/test/file.txt', 'Hello, World!');
            expect(fs.writeFile).toHaveBeenCalledWith('/test/file.txt', 'Hello, World!', 'utf-8');
        });
    });
});
//# sourceMappingURL=fileSystemService.test.js.map