Skip to content

Commit 29a9614

Browse files
committed
refactor: move assertTelemetry into TelemetryHelper as assertMetricEmitted
1 parent 5e09b0d commit 29a9614

4 files changed

Lines changed: 15 additions & 18 deletions

File tree

integ-tests/add-remove-resources.test.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { createTestProject, readProjectConfig, runCLI } from '../src/test-utils/index.js';
22
import type { TestProject } from '../src/test-utils/index.js';
3-
import { assertTelemetry, createTelemetryHelper } from '../src/test-utils/telemetry-helper.js';
3+
import { createTelemetryHelper } from '../src/test-utils/telemetry-helper.js';
44
import { afterAll, beforeAll, describe, expect, it } from 'vitest';
55

66
const telemetry = createTelemetryHelper();
@@ -42,7 +42,7 @@ describe('integration: add and remove resources', () => {
4242
expect(found, `Memory "${memoryName}" should be in config`).toBe(true);
4343

4444
// Verify telemetry
45-
assertTelemetry(telemetry.readEntries(), { command: 'add.memory', exit_reason: 'success' });
45+
telemetry.assertMetricEmitted({ command: 'add.memory', exit_reason: 'success' });
4646
});
4747

4848
it('adds a memory with EPISODIC strategy and verifies reflectionNamespaces', async () => {
@@ -111,7 +111,7 @@ describe('integration: add and remove resources', () => {
111111
expect(found, `Credential "${credentialName}" should be in config`).toBe(true);
112112

113113
// Verify telemetry
114-
assertTelemetry(telemetry.readEntries(), {
114+
telemetry.assertMetricEmitted({
115115
command: 'add.credential',
116116
exit_reason: 'success',
117117
credential_type: 'api-key',

integ-tests/help.test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { spawnAndCollect } from '../src/test-utils/cli-runner.js';
22
import { runCLI } from '../src/test-utils/index.js';
3-
import { assertTelemetry, createTelemetryHelper } from '../src/test-utils/telemetry-helper.js';
3+
import { createTelemetryHelper } from '../src/test-utils/telemetry-helper.js';
44
import { readdirSync } from 'node:fs';
55
import { join } from 'node:path';
66
import { afterAll, describe, expect, it } from 'vitest';
@@ -63,7 +63,7 @@ describe('help modes telemetry', () => {
6363

6464
const entries = telemetry.readEntries();
6565
expect(entries).toHaveLength(1);
66-
assertTelemetry(entries, {
66+
telemetry.assertMetricEmitted({
6767
command_group: 'help',
6868
command: 'help.modes',
6969
exit_reason: 'success',

src/test-utils/index.ts

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,7 @@
44
*/
55

66
export { runCLI, spawnAndCollect, cleanSpawnEnv, type RunResult } from './cli-runner.js';
7-
export {
8-
createTelemetryHelper,
9-
assertTelemetry,
10-
type TelemetryHelper,
11-
type TelemetryEntry,
12-
} from './telemetry-helper.js';
7+
export { createTelemetryHelper, type TelemetryHelper, type TelemetryEntry } from './telemetry-helper.js';
138
export { exists } from './fs-helpers.js';
149
export { hasCommand, hasAwsCredentials, prereqs } from './prereqs.js';
1510
export { createTestProject, type TestProject, type CreateTestProjectOptions } from './project-factory.js';

src/test-utils/telemetry-helper.ts

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@ export interface TelemetryHelper {
1616
env: { AGENTCORE_TELEMETRY_AUDIT: '1'; AGENTCORE_CONFIG_DIR: string };
1717
/** Read all JSONL entries from the audit telemetry directory */
1818
readEntries: () => TelemetryEntry[];
19+
/** Assert a metric was emitted with attrs matching the given subset */
20+
assertMetricEmitted: (expected: Record<string, string | number | boolean>) => void;
1921
/** Delete telemetry entries only (keeps the config dir) */
2022
clearEntries: () => void;
2123
/** Delete the entire config directory — call in afterAll */
@@ -24,7 +26,7 @@ export interface TelemetryHelper {
2426

2527
export function createTelemetryHelper(): TelemetryHelper {
2628
const dir = mkdtempSync(join(tmpdir(), 'agentcore-audit-'));
27-
return {
29+
const helper: TelemetryHelper = {
2830
dir,
2931
env: { AGENTCORE_TELEMETRY_AUDIT: '1', AGENTCORE_CONFIG_DIR: dir },
3032
readEntries() {
@@ -35,17 +37,17 @@ export function createTelemetryHelper(): TelemetryHelper {
3537
.map(line => JSON.parse(line) as TelemetryEntry)
3638
);
3739
},
40+
assertMetricEmitted(expected) {
41+
const entries = helper.readEntries();
42+
const match = entries.find(e => Object.entries(expected).every(([k, v]) => String(e.attrs[k]) === String(v)));
43+
expect(match, `No telemetry entry matching ${JSON.stringify(expected)}`).toBeDefined();
44+
},
3845
clearEntries() {
3946
rmSync(join(dir, 'telemetry'), { recursive: true, force: true });
4047
},
4148
destroy() {
4249
rmSync(dir, { recursive: true, force: true });
4350
},
4451
};
45-
}
46-
47-
/** Assert that at least one telemetry entry was emitted matching the given attrs. */
48-
export function assertTelemetry(entries: TelemetryEntry[], expected: Record<string, string | number | boolean>): void {
49-
const match = entries.find(e => Object.entries(expected).every(([k, v]) => String(e.attrs[k]) === String(v)));
50-
expect(match, `No telemetry entry matching ${JSON.stringify(expected)}`).toBeDefined();
52+
return helper;
5153
}

0 commit comments

Comments
 (0)