import { describe, it } from 'node:test'; import assert from 'node:assert/strict'; import { 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('client fingerprint metadata', () => { it('uses the current Windsurf client version by default', async () => { const previous = process.env.WINDSURF_CLIENT_VERSION; delete process.env.WINDSURF_CLIENT_VERSION; try { const { buildMetadata } = await import('../src/windsurf.js?fingerprint-default'); const metadata = metadataStrings(buildMetadata('apikey', undefined, 'sess')); assert.equal(metadata[2], '2.0.67'); assert.equal(metadata[7], '2.0.67'); } finally { if (previous == null) delete process.env.WINDSURF_CLIENT_VERSION; else process.env.WINDSURF_CLIENT_VERSION = previous; } }); it('uses WINDSURF_CLIENT_VERSION when set before import', async () => { const previous = process.env.WINDSURF_CLIENT_VERSION; process.env.WINDSURF_CLIENT_VERSION = '9.9.9'; try { const { buildMetadata } = await import('../src/windsurf.js?fingerprint-env'); const metadata = metadataStrings(buildMetadata('apikey', undefined, 'sess')); assert.equal(metadata[2], '9.9.9'); assert.equal(metadata[7], '9.9.9'); } finally { if (previous == null) delete process.env.WINDSURF_CLIENT_VERSION; else process.env.WINDSURF_CLIENT_VERSION = previous; } }); it('lets an explicit version override the default', async () => { const { buildMetadata } = await import('../src/windsurf.js?fingerprint-explicit'); const metadata = metadataStrings(buildMetadata('apikey', '1.2.3', 'sess')); assert.equal(metadata[2], '1.2.3'); assert.equal(metadata[7], '1.2.3'); }); });