Files
2026-07-13 12:34:04 +08:00

42 lines
1.2 KiB
JavaScript

'use strict';
const test = require('node:test');
const assert = require('node:assert/strict');
const {
constrainImageDimensions,
estimateDataUrlBytes,
MAX_BACKGROUND_EDGE,
} = require('./background-image.js');
test('constrainImageDimensions keeps smaller images unchanged', () => {
assert.deepEqual(
constrainImageDimensions({ width: 1200, height: 800, maxEdge: MAX_BACKGROUND_EDGE }),
{ width: 1200, height: 800 }
);
});
test('constrainImageDimensions scales landscape images down to the max edge', () => {
assert.deepEqual(
constrainImageDimensions({ width: 4000, height: 2000, maxEdge: 1920 }),
{ width: 1920, height: 960 }
);
});
test('constrainImageDimensions scales portrait images down to the max edge', () => {
assert.deepEqual(
constrainImageDimensions({ width: 1800, height: 3600, maxEdge: 1600 }),
{ width: 800, height: 1600 }
);
});
test('estimateDataUrlBytes converts base64 payload length to bytes', () => {
const payload = Buffer.from('tab-harbor-background').toString('base64');
const dataUrl = `data:image/jpeg;base64,${payload}`;
assert.equal(
estimateDataUrlBytes(dataUrl),
Buffer.byteLength('tab-harbor-background')
);
});