From 9d7db3290a6a39df567534999ca1c78cf5a7d55b Mon Sep 17 00:00:00 2001 From: VG31OP Date: Tue, 13 Oct 2026 18:25:25 +0530 Subject: [PATCH] fix(cli): execute jest javascript entrypoint directly and add config unit tests --- tools/ruview-cli/package.json | 2 +- tools/ruview-cli/tests/config.test.ts | 44 +++++++++++++++++++++++++++ 2 files changed, 45 insertions(+), 1 deletion(-) create mode 100644 tools/ruview-cli/tests/config.test.ts diff --git a/tools/ruview-cli/package.json b/tools/ruview-cli/package.json index 1b88385e34..f97135f2ce 100644 --- a/tools/ruview-cli/package.json +++ b/tools/ruview-cli/package.json @@ -15,7 +15,7 @@ "scripts": { "build": "tsc", "dev": "tsc --watch", - "test": "node --experimental-vm-modules node_modules/.bin/jest --passWithNoTests", + "test": "node --experimental-vm-modules node_modules/jest/bin/jest.js", "lint": "eslint src --ext .ts", "typecheck": "tsc --noEmit" }, diff --git a/tools/ruview-cli/tests/config.test.ts b/tools/ruview-cli/tests/config.test.ts new file mode 100644 index 0000000000..e4188ae032 --- /dev/null +++ b/tools/ruview-cli/tests/config.test.ts @@ -0,0 +1,44 @@ +import { describe, it, expect, beforeEach, afterAll } from "@jest/globals"; +import { loadConfig } from "../src/config.js"; + +describe("loadConfig()", () => { + const originalEnv = process.env; + + beforeEach(() => { + process.env = { ...originalEnv }; + }); + + afterAll(() => { + process.env = originalEnv; + }); + + it("loads default configuration when environment variables are unset", () => { + delete process.env["RUVIEW_SENSING_SERVER_URL"]; + delete process.env["RUVIEW_API_TOKEN"]; + delete process.env["RUVIEW_POSE_COG_BINARY"]; + delete process.env["RUVIEW_COUNT_COG_BINARY"]; + delete process.env["RUVIEW_JOBS_DIR"]; + + const config = loadConfig(); + expect(config.sensingServerUrl).toBe("http://localhost:3000"); + expect(config.apiToken).toBeUndefined(); + expect(config.poseCogBinary).toBe("cog-pose-estimation"); + expect(config.countCogBinary).toBe("cog-person-count"); + expect(config.jobsDir).toContain(".ruview"); + }); + + it("overrides default values with environment variables", () => { + process.env["RUVIEW_SENSING_SERVER_URL"] = "http://sensing.local:8080"; + process.env["RUVIEW_API_TOKEN"] = "secret-token-123"; + process.env["RUVIEW_POSE_COG_BINARY"] = "/opt/bin/pose"; + process.env["RUVIEW_COUNT_COG_BINARY"] = "/opt/bin/count"; + process.env["RUVIEW_JOBS_DIR"] = "/tmp/ruview-jobs"; + + const config = loadConfig(); + expect(config.sensingServerUrl).toBe("http://sensing.local:8080"); + expect(config.apiToken).toBe("secret-token-123"); + expect(config.poseCogBinary).toBe("/opt/bin/pose"); + expect(config.countCogBinary).toBe("/opt/bin/count"); + expect(config.jobsDir).toBe("/tmp/ruview-jobs"); + }); +});