const test = require('node:test');
const assert = require('node:assert/strict');
const { wireFrom, wireOf } = require('./wire.js');
test('the wire parses to its keys', () => {
assert.deepEqual(wireOf(',a,b,'), ['a', 'b']);
assert.deepEqual(wireOf(',ab,'), ['ab']);
assert.deepEqual(wireOf(''), []);
});
test('the wire serializes comma-delimited on both ends', () => {
assert.equal(wireFrom(['a', 'b']), ',a,b,');
assert.equal(wireFrom(['ab']), ',ab,');
assert.equal(wireFrom([]), '');
});
test('parse and serialize round-trip', () => {
assert.equal(wireFrom(wireOf(',a,b,')), ',a,b,');
assert.deepEqual(wireOf(wireFrom(['a', 'b'])), ['a', 'b']);
assert.equal(wireFrom(wireOf('')), '');
});
test('wire membership is exact', () => {
assert.ok(!wireOf(',ab,').includes('b'), 'a substring is not a member');
});