import { describe, it } from 'node:test'; import assert from 'node:assert/strict'; import { buildHeartbeatRequest } from '../src/windsurf.js'; import { getAllFields, getField, parseFields } from '../src/proto.js'; function metadataStrings(buf) { return Object.fromEntries( parseFields(buf) .filter(field => field.wireType === 2) .map(field => [field.field, field.value.toString('utf8')]) ); } describe('buildHeartbeatRequest', () => { it('emits metadata only with Windsurf fingerprint fields', () => { const req = buildHeartbeatRequest('apikey', 'sess'); const fields = parseFields(req); const metadata = getField(fields, 1, 2); assert.ok(metadata); assert.equal(getAllFields(fields, 2).length, 0); assert.equal(getAllFields(fields, 3).length, 0); const meta = metadataStrings(metadata.value); assert.equal(meta[1], 'windsurf'); assert.equal(meta[2], '2.0.67'); }); });