Files
mc-bot/test/compression.test.js
2026-08-22 11:09:05 -05:00

46 lines
1.4 KiB
JavaScript

'use strict';
const test = require('node:test');
const assert = require('node:assert');
const { MCStream } = require('../src/bot/compression');
test('MCStream: deflate below threshold is passthrough', () => {
const s = new MCStream();
s.setThreshold(256);
const data = Buffer.from('hello');
assert.strictEqual(s.deflate(data), data);
});
test('MCStream: inflate of uncompressed data is passthrough', () => {
const s = new MCStream();
s.setThreshold(256);
const data = Buffer.from('hello');
assert.strictEqual(s.inflate(data), data);
});
test('MCStream: deflate then inflate round-trip', () => {
const s = new MCStream();
s.setThreshold(8);
const data = Buffer.from('a'.repeat(64));
const compressed = s.deflate(data);
assert.ok(compressed.length < data.length, 'compressed should be smaller');
const back = s.inflate(compressed);
assert.deepStrictEqual([...back], [...data]);
});
test('MCStream: corrupt zlib stream returns original', () => {
const s = new MCStream();
s.setThreshold(8);
const bad = Buffer.from('not a zlib stream at all - just bytes');
const result = s.inflate(bad);
assert.strictEqual(result, bad);
});
test('MCStream: disabled returns input as-is', () => {
const s = new MCStream();
assert.strictEqual(s.isEnabled(), false);
const data = Buffer.from('x'.repeat(1024));
assert.strictEqual(s.deflate(data), data);
assert.strictEqual(s.inflate(data), data);
});