summaryrefslogtreecommitdiff
path: root/packages/cli/src/ui/utils/displayUtils.test.ts
diff options
context:
space:
mode:
authorAbhi <[email protected]>2025-06-29 20:44:33 -0400
committerGitHub <[email protected]>2025-06-30 00:44:33 +0000
commit770f862832dfef477705bee69bd2a84397d105a8 (patch)
tree8cb647cf789f05458ff491b461aa531a6932ad3d /packages/cli/src/ui/utils/displayUtils.test.ts
parent0fd602eb43eea7abca980dc2ae3fd7bf2ba76a2a (diff)
feat: Change /stats to include more detailed breakdowns (#2615)
Diffstat (limited to 'packages/cli/src/ui/utils/displayUtils.test.ts')
-rw-r--r--packages/cli/src/ui/utils/displayUtils.test.ts58
1 files changed, 58 insertions, 0 deletions
diff --git a/packages/cli/src/ui/utils/displayUtils.test.ts b/packages/cli/src/ui/utils/displayUtils.test.ts
new file mode 100644
index 00000000..7dd9f0e8
--- /dev/null
+++ b/packages/cli/src/ui/utils/displayUtils.test.ts
@@ -0,0 +1,58 @@
+/**
+ * @license
+ * Copyright 2025 Google LLC
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+import { describe, it, expect } from 'vitest';
+import {
+ getStatusColor,
+ TOOL_SUCCESS_RATE_HIGH,
+ TOOL_SUCCESS_RATE_MEDIUM,
+ USER_AGREEMENT_RATE_HIGH,
+ USER_AGREEMENT_RATE_MEDIUM,
+ CACHE_EFFICIENCY_HIGH,
+ CACHE_EFFICIENCY_MEDIUM,
+} from './displayUtils.js';
+import { Colors } from '../colors.js';
+
+describe('displayUtils', () => {
+ describe('getStatusColor', () => {
+ const thresholds = {
+ green: 80,
+ yellow: 50,
+ };
+
+ it('should return green for values >= green threshold', () => {
+ expect(getStatusColor(90, thresholds)).toBe(Colors.AccentGreen);
+ expect(getStatusColor(80, thresholds)).toBe(Colors.AccentGreen);
+ });
+
+ it('should return yellow for values < green and >= yellow threshold', () => {
+ expect(getStatusColor(79, thresholds)).toBe(Colors.AccentYellow);
+ expect(getStatusColor(50, thresholds)).toBe(Colors.AccentYellow);
+ });
+
+ it('should return red for values < yellow threshold', () => {
+ expect(getStatusColor(49, thresholds)).toBe(Colors.AccentRed);
+ expect(getStatusColor(0, thresholds)).toBe(Colors.AccentRed);
+ });
+
+ it('should return defaultColor for values < yellow threshold when provided', () => {
+ expect(
+ getStatusColor(49, thresholds, { defaultColor: Colors.Foreground }),
+ ).toBe(Colors.Foreground);
+ });
+ });
+
+ describe('Threshold Constants', () => {
+ it('should have the correct values', () => {
+ expect(TOOL_SUCCESS_RATE_HIGH).toBe(95);
+ expect(TOOL_SUCCESS_RATE_MEDIUM).toBe(85);
+ expect(USER_AGREEMENT_RATE_HIGH).toBe(75);
+ expect(USER_AGREEMENT_RATE_MEDIUM).toBe(45);
+ expect(CACHE_EFFICIENCY_HIGH).toBe(40);
+ expect(CACHE_EFFICIENCY_MEDIUM).toBe(15);
+ });
+ });
+});