Add metadata logging to Agheera push functions and implement logging for pushPosition
This commit is contained in:
@@ -0,0 +1,72 @@
|
||||
const assert = require('node:assert/strict');
|
||||
const fs = require('fs');
|
||||
const os = require('os');
|
||||
const path = require('path');
|
||||
const test = require('node:test');
|
||||
|
||||
const agheeraPushClient = require('../src/services/agheeraPushClient');
|
||||
|
||||
let originalApiKey;
|
||||
let originalPushLogPath;
|
||||
let originalPushLogs;
|
||||
|
||||
test.before(() => {
|
||||
originalApiKey = process.env.AGHEERA_API_KEY;
|
||||
originalPushLogPath = process.env.AGHEERA_PUSH_LOG_PATH;
|
||||
originalPushLogs = process.env.AGHEERA_PUSH_LOGS;
|
||||
});
|
||||
|
||||
test.after(() => {
|
||||
process.env.AGHEERA_API_KEY = originalApiKey;
|
||||
process.env.AGHEERA_PUSH_LOG_PATH = originalPushLogPath;
|
||||
process.env.AGHEERA_PUSH_LOGS = originalPushLogs;
|
||||
agheeraPushClient.__resetHttpClientForTests();
|
||||
});
|
||||
|
||||
test.afterEach(() => {
|
||||
agheeraPushClient.__resetHttpClientForTests();
|
||||
});
|
||||
|
||||
test('pushPosition escribe log dedicado sin apiKey', async () => {
|
||||
const tempDir = fs.mkdtempSync(path.join(os.tmpdir(), 'agheera-log-'));
|
||||
const logPath = path.join(tempDir, 'agheera_push.log');
|
||||
|
||||
process.env.AGHEERA_API_KEY = 'secret-api-key';
|
||||
process.env.AGHEERA_PUSH_LOG_PATH = logPath;
|
||||
delete process.env.AGHEERA_PUSH_LOGS;
|
||||
|
||||
agheeraPushClient.__setHttpClientForTests(async () => ({
|
||||
ok: true,
|
||||
status: 200,
|
||||
text: async () => 'Messages received.'
|
||||
}));
|
||||
|
||||
await agheeraPushClient.pushPosition({
|
||||
latitude: '40.416775',
|
||||
longitude: '-3.703790',
|
||||
vehicleId: '6599LCN',
|
||||
licensePlate: '6599LCN',
|
||||
measurementTime: '2026-06-01T13:38:31Z',
|
||||
metadata: {
|
||||
source: 'test',
|
||||
trip_id: 306075
|
||||
}
|
||||
});
|
||||
|
||||
const lines = fs.readFileSync(logPath, 'utf8').trim().split('\n');
|
||||
assert.equal(lines.length, 1);
|
||||
|
||||
const entry = JSON.parse(lines[0]);
|
||||
assert.equal(entry.source, 'test');
|
||||
assert.equal(entry.trip_id, 306075);
|
||||
assert.equal(entry.vehicleId, '6599LCN');
|
||||
assert.equal(entry.licensePlate, '6599LCN');
|
||||
assert.equal(entry.latitude, 40.416775);
|
||||
assert.equal(entry.longitude, -3.70379);
|
||||
assert.equal(entry.measurementTime, '2026-06-01T13:38:31Z');
|
||||
assert.equal(entry.success, true);
|
||||
assert.equal(entry.http_status, 200);
|
||||
assert.equal(entry.response_body, 'Messages received.');
|
||||
assert.equal(entry.error, null);
|
||||
assert.equal(JSON.stringify(entry).includes('secret-api-key'), false);
|
||||
});
|
||||
Reference in New Issue
Block a user