mirror of
https://github.com/tiennm99/ccs.git
synced 2026-07-17 06:17:09 +00:00
Derive a tri-state quotaStatus (ok|unsupported|error) per account so a provider with no quota API renders as 'no quota' with a healthy dot instead of an alarming bare dash, and treat unsupported as healthy in deriveHealth. Switch the analytics endpoint off the CLIProxy snapshot, which freezes whenever the proxy restarts (usage is in-memory only), and onto the merged daily/hourly usage the dashboard uses. Recent activity from Claude Code, Codex, and Droid now shows, and a per-surface breakdown answers where usage goes. Add lastActivityAt, daysSinceLastActivity, hasRecentData and a 30-day series; per-account today_cost reads null (unknown) rather than a misleading 0.
CCS Test Suite
Organization
tests/
├── unit/ # Module unit tests (Mocha)
│ ├── glmt/ # Legacy GLMT transformer/internal compatibility tests
│ └── delegation/ # Delegation module tests
├── npm/ # npm package tests (Mocha)
├── native/ # Native installation tests (bash/PowerShell)
│ ├── unix/ # Unix/Linux/macOS tests
│ └── windows/ # Windows PowerShell tests
├── integration/ # Integration + smoke tests
└── shared/ # Shared utilities
├── fixtures/ # Test configuration and environment
├── unit/ # Helper function tests
├── helpers.sh # Bash test utilities
└── test-data.js # Test data for npm tests
Running Tests
bun run test # All automated tests (unit + integration + npm)
bun run test:unit # Unit tests only
bun run test:npm # npm package tests
bun run test:native # Native Unix tests (bash)
Test Categories
Unit Tests (unit/)
Module-level tests using Mocha framework:
unit/glmt/- Legacy transformer internals kept for Cursor translation compatibilityunit/delegation/- Permission mode, session manager, result formatter
npm Tests (npm/)
npm package functionality tests using Mocha:
postinstall.test.js- Postinstall behaviorcli.test.js- CLI argument parsingcross-platform.test.js- Cross-platform compatibilityspecial-commands.test.js- Integration tests
Native Tests (native/)
Installation tests for curl|bash (Unix) and irm|iex (Windows):
native/unix/edge-cases.sh- Unix edge case testsnative/windows/edge-cases.ps1- Windows edge case tests
Integration Tests (integration/)
Integration and smoke coverage for scenarios that exercise multiple layers:
- Automated
*.test.tsfiles run as part ofbun run test:alland CI - Shell and standalone probe scripts remain on-demand for targeted debugging
cursor-daemon-lifecycle.test.ts- local daemon process + HTTP smoke coverageimage-analyzer-hook.test.ts- hook integration coverageglmt-integration-test.sh- legacy GLMT compatibility smoke probesymlink-chain-test.sh- Symlink chain handlingux-integration-test.sh- CLI UX integration
Adding New Tests
- Unit tests: Add to
unit/<module>/for isolated module behavior - npm tests: Add to
npm/for package behavior - Native tests: Add to
native/unix/ornative/windows/ - Integration tests: Add automated cross-layer smoke coverage to
integration/*.test.ts