import assert from 'node:assert/strict'; import test from 'node:test'; import { createDataplaneClient } from '../../src/server/dataplaneClient.js'; test('control uses the dataplane socket protocol', async () => { const requests = []; const send = async (socketPath, pathname, method) => { requests.push(`${method} ${pathname} ${socketPath}`); return { running: pathname !== '/stop', startedAt: 'now', gatewayBackendVersion: '0.1.0', singBoxVersion: '1.12.13', }; }; const client = createDataplaneClient('/run/dataplane.sock', send); const status = await client.refresh(); assert.equal(status.running, true); assert.equal(status.gatewayBackendVersion, '0.1.0'); assert.equal(status.singBoxVersion, '1.12.13'); await client.apply(); await client.restart(); assert.equal((await client.stop()).running, false); assert.deepEqual(requests, [ 'GET /status /run/dataplane.sock', 'POST /apply /run/dataplane.sock', 'POST /restart /run/dataplane.sock', 'POST /stop /run/dataplane.sock', ]); });