diff options
| author | Conrad Irwin <[email protected]> | 2025-08-18 16:29:45 -0600 |
|---|---|---|
| committer | GitHub <[email protected]> | 2025-08-18 22:29:45 +0000 |
| commit | fb3ceb0da4e2cd636013c2c36a9c0016c01aa47f (patch) | |
| tree | 7aa43846dd88bd5acdb8898b0ccd2e685f2d5ece /packages/core/src/services/fileSystemService.test.ts | |
| parent | 4394b6ab4fc86637b07fcd26b9a790c627d1e065 (diff) | |
Read and write files through Zed (#6169)
Co-authored-by: Agus Zubiaga <[email protected]>
Diffstat (limited to 'packages/core/src/services/fileSystemService.test.ts')
| -rw-r--r-- | packages/core/src/services/fileSystemService.test.ts | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/packages/core/src/services/fileSystemService.test.ts b/packages/core/src/services/fileSystemService.test.ts new file mode 100644 index 00000000..c61ec066 --- /dev/null +++ b/packages/core/src/services/fileSystemService.test.ts @@ -0,0 +1,59 @@ +/** + * @license + * Copyright 2025 Google LLC + * SPDX-License-Identifier: Apache-2.0 + */ + +import { describe, it, expect, beforeEach, afterEach, vi } from 'vitest'; +import fs from 'fs/promises'; +import { StandardFileSystemService } from './fileSystemService.js'; + +vi.mock('fs/promises'); + +describe('StandardFileSystemService', () => { + let fileSystem: StandardFileSystemService; + + 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', + ); + }); + }); +}); |
