Files
claude-task-master/test-telemetry-integration.js

96 lines
2.9 KiB
JavaScript
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/usr/bin/env node
/**
* Integration test for telemetry submission with real gateway
*/
import { submitTelemetryData } from "./scripts/modules/telemetry-submission.js";
// Test data from the gateway registration
const TEST_API_KEY = "554d9e2a-9c07-4f69-a449-a2bda0ff06e7";
const TEST_USER_ID = "c81e686a-a37c-4dc4-ac23-0849f70a9a52";
async function testTelemetrySubmission() {
console.log("🧪 Testing telemetry submission with real gateway...\n");
// Create test telemetry data
const telemetryData = {
timestamp: new Date().toISOString(),
userId: TEST_USER_ID,
commandName: "add-task",
modelUsed: "claude-3-sonnet",
providerName: "anthropic",
inputTokens: 150,
outputTokens: 75,
totalTokens: 225,
totalCost: 0.0045,
currency: "USD",
// These should be filtered out before submission
commandArgs: {
id: "15",
prompt: "Test task creation",
apiKey: "sk-secret-key-should-be-filtered",
},
fullOutput: {
title: "Generated Task",
description: "AI generated task description",
internalDebugData: "This should not be sent to gateway",
},
};
console.log("📤 Submitting telemetry data...");
console.log("Data to submit:", JSON.stringify(telemetryData, null, 2));
console.log(
"\n⚠ Note: commandArgs and fullOutput should be filtered out before submission\n"
);
try {
const result = await submitTelemetryData(telemetryData);
console.log("✅ Telemetry submission result:");
console.log(JSON.stringify(result, null, 2));
if (result.success) {
console.log("\n🎉 SUCCESS: Telemetry data submitted successfully!");
if (result.id) {
console.log(`📝 Gateway assigned ID: ${result.id}`);
}
console.log(`🔄 Completed in ${result.attempt || 1} attempt(s)`);
} else {
console.log("\n❌ FAILED: Telemetry submission failed");
console.log(`Error: ${result.error}`);
}
} catch (error) {
console.error(
"\n💥 EXCEPTION: Unexpected error during telemetry submission"
);
console.error(error);
}
}
// Test with manual curl to verify endpoint works
async function testWithCurl() {
console.log("\n🔧 Testing with direct curl for comparison...\n");
const testData = {
timestamp: new Date().toISOString(),
userId: TEST_USER_ID,
commandName: "curl-test",
modelUsed: "claude-3-sonnet",
totalCost: 0.001,
currency: "USD",
};
console.log("Curl command that should work:");
console.log(`curl -X POST http://localhost:4444/api/v1/telemetry \\`);
console.log(` -H "Content-Type: application/json" \\`);
console.log(` -H "X-API-Key: ${TEST_API_KEY}" \\`);
console.log(` -d '${JSON.stringify(testData)}'`);
}
// Run the tests
console.log("🚀 Starting telemetry integration tests...\n");
await testTelemetrySubmission();
await testWithCurl();
console.log("\n✨ Integration test complete!");