diff --git a/src/__mocks__/service.mocks.js b/src/__mocks__/service.mocks.js index d9523df..b399b1f 100644 --- a/src/__mocks__/service.mocks.js +++ b/src/__mocks__/service.mocks.js @@ -29,6 +29,7 @@ export const mockFsService = { readJsonFile: vi.fn(), writeJsonFile: vi.fn(), writeFile: vi.fn(), + toRelativePath: vi.fn(), }; export const mockShellService = { diff --git a/src/services/configService.js b/src/services/configService.js index c899b98..9185177 100644 --- a/src/services/configService.js +++ b/src/services/configService.js @@ -119,7 +119,6 @@ export class ConfigService { }; toRelative = (str) => { - throw new Error("This code does not belong in this file. Move it."); - return path.relative(this.config.codexInstallPath, str); + return this.fs.toRelativePath(this.config.codexInstallPath, str); }; } diff --git a/src/services/configService.test.js b/src/services/configService.test.js index 70b6307..ee58b0f 100644 --- a/src/services/configService.test.js +++ b/src/services/configService.test.js @@ -169,6 +169,9 @@ describe("ConfigService", () => { it("writes the config file values to the config TOML file", () => { const publicIp = "1.2.3.4"; const bootstrapNodes = ["boot111", "boot222", "boot333"]; + const relativeDataDirPath = "..\\../datadir"; + + mockFsService.toRelativePath.mockReturnValue(relativeDataDirPath); configService.writeCodexConfigFile(publicIp, bootstrapNodes); @@ -176,7 +179,7 @@ describe("ConfigService", () => { expect(mockFsService.writeFile).toHaveBeenCalledWith( expectedDefaultConfig.codexConfigFilePath, - `data-dir=\"${formatPath(expectedDefaultConfig.dataDir)}"${newLine}` + + `data-dir=\"${formatPath(relativeDataDirPath)}"${newLine}` + `log-level="DEBUG"${newLine}` + `log-file="${formatPath(logsPath)}"${newLine}` + `storage-quota=${expectedDefaultConfig.storageQuota}${newLine}` + @@ -191,6 +194,11 @@ describe("ConfigService", () => { }) .join(",")}]${newLine}`, ); + + expect(mockFsService.toRelativePath).toHaveBeenCalledWith( + expectedDefaultConfig.codexInstallPath, + expectedDefaultConfig.dataDir, + ); }); }); }); diff --git a/src/services/fsService.js b/src/services/fsService.js index 68f108d..52556d4 100644 --- a/src/services/fsService.js +++ b/src/services/fsService.js @@ -66,4 +66,8 @@ export class FsService { writeFile = (filePath, content) => { fs.writeFileSync(filePath, content); }; + + toRelativePath = (from, to) => { + return path.relative(from, to); + }; } diff --git a/src/ui/mainMenu.js b/src/ui/mainMenu.js index dd52439..bb399e7 100644 --- a/src/ui/mainMenu.js +++ b/src/ui/mainMenu.js @@ -70,7 +70,7 @@ export class MainMenu { }; showNotRunningMenu = async () => { - await this.ui.askMultipleChoice("Codex is not running", [ + await this.ui.askMultipleChoice("Codex is installed but not running", [ { label: "Start Codex", action: this.processControl.startCodexProcess, diff --git a/src/ui/mainMenu.test.js b/src/ui/mainMenu.test.js index e05d2b6..f31de9a 100644 --- a/src/ui/mainMenu.test.js +++ b/src/ui/mainMenu.test.js @@ -127,7 +127,7 @@ describe("mainmenu", () => { await mainmenu.showNotRunningMenu(); expect(mockUiService.askMultipleChoice).toHaveBeenCalledWith( - "Codex is not running", + "Codex is installed but not running", [ { label: "Start Codex",