test(nonInteractiveCli): add tests and remove unused cost info

This commit is contained in:
mingholy.lmh
2025-11-05 17:09:37 +08:00
parent a962e10406
commit 49b1018337
10 changed files with 2746 additions and 85 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -56,7 +56,6 @@ export interface ResultOptions {
readonly apiDurationMs: number;
readonly numTurns: number;
readonly usage?: ExtendedUsage;
readonly totalCostUsd?: number;
readonly stats?: SessionMetrics;
readonly summary?: string;
readonly subtype?: string;
@@ -1020,7 +1019,6 @@ export abstract class BaseJsonOutputAdapter {
duration_ms: options.durationMs,
duration_api_ms: options.apiDurationMs,
num_turns: options.numTurns,
total_cost_usd: options.totalCostUsd ?? 0,
usage,
permission_denials: [],
error: { message: errorMessage },
@@ -1037,7 +1035,6 @@ export abstract class BaseJsonOutputAdapter {
duration_api_ms: options.apiDurationMs,
num_turns: options.numTurns,
result: resultText,
total_cost_usd: options.totalCostUsd ?? 0,
usage,
permission_denials: [],
};
@@ -1075,7 +1072,6 @@ export abstract class BaseJsonOutputAdapter {
duration_ms: 0,
duration_api_ms: 0,
num_turns: numTurns,
total_cost_usd: 0,
usage,
permission_denials: [],
error: { message: errorMessage },

View File

@@ -392,7 +392,6 @@ describe('JsonOutputAdapter', () => {
durationMs: 1000,
apiDurationMs: 800,
numTurns: 1,
totalCostUsd: 0.01,
});
expect(stdoutWriteSpy).toHaveBeenCalled();
@@ -414,7 +413,6 @@ describe('JsonOutputAdapter', () => {
expect(resultMessage.result).toBe('Response text');
expect(resultMessage.duration_ms).toBe(1000);
expect(resultMessage.num_turns).toBe(1);
expect(resultMessage.total_cost_usd).toBe(0.01);
});
it('should emit error result', () => {
@@ -424,7 +422,6 @@ describe('JsonOutputAdapter', () => {
durationMs: 500,
apiDurationMs: 300,
numTurns: 1,
totalCostUsd: 0.005,
});
const output = stdoutWriteSpy.mock.calls[0][0] as string;

View File

@@ -612,7 +612,6 @@ describe('StreamJsonOutputAdapter', () => {
durationMs: 1000,
apiDurationMs: 800,
numTurns: 1,
totalCostUsd: 0.01,
});
expect(stdoutWriteSpy).toHaveBeenCalled();
@@ -625,7 +624,6 @@ describe('StreamJsonOutputAdapter', () => {
expect(parsed.result).toBe('Response text');
expect(parsed.duration_ms).toBe(1000);
expect(parsed.num_turns).toBe(1);
expect(parsed.total_cost_usd).toBe(0.01);
});
it('should emit error result', () => {
@@ -636,7 +634,6 @@ describe('StreamJsonOutputAdapter', () => {
durationMs: 500,
apiDurationMs: 300,
numTurns: 1,
totalCostUsd: 0.005,
});
const output = stdoutWriteSpy.mock.calls[0][0] as string;

View File

@@ -608,7 +608,6 @@ class SessionManager {
apiDurationMs,
numTurns,
usage: undefined,
totalCostUsd: undefined,
});
}

View File

@@ -36,7 +36,6 @@ export interface ModelUsage {
cacheReadInputTokens: number;
cacheCreationInputTokens: number;
webSearchRequests: number;
costUSD: number;
contextWindow: number;
}
@@ -162,7 +161,6 @@ export interface CLIResultMessageSuccess {
duration_api_ms: number;
num_turns: number;
result: string;
total_cost_usd: number;
usage: ExtendedUsage;
modelUsage?: Record<string, ModelUsage>;
permission_denials: CLIPermissionDenial[];
@@ -178,7 +176,6 @@ export interface CLIResultMessageError {
duration_ms: number;
duration_api_ms: number;
num_turns: number;
total_cost_usd: number;
usage: ExtendedUsage;
modelUsage?: Record<string, ModelUsage>;
permission_denials: CLIPermissionDenial[];