From 7d28c484e4c8efb2d213db7d65000c4a537d1053 Mon Sep 17 00:00:00 2001 From: "google-labs-jules[bot]" <161369871+google-labs-jules[bot]@users.noreply.github.com> Date: Tue, 3 Mar 2026 14:47:14 +0000 Subject: [PATCH] test: add edge case tests for hexToRgba fallbacks Co-authored-by: BTawaifi <52285931+BTawaifi@users.noreply.github.com> --- src/__tests__/utils.test.mjs | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/__tests__/utils.test.mjs b/src/__tests__/utils.test.mjs index 4ac0845..e8374df 100644 --- a/src/__tests__/utils.test.mjs +++ b/src/__tests__/utils.test.mjs @@ -31,3 +31,23 @@ test('hexToRgba handles standard hex', () => { assert.strictEqual(hexToRgba('#ff0000', 1), 'rgba(255, 0, 0, 1)'); assert.strictEqual(hexToRgba('#000000', 0), 'rgba(0, 0, 0, 0)'); }); + +test('hexToRgba handles invalid, short, or malformed hex strings with fallbacks to 0', () => { + // Invalid hex characters + assert.strictEqual(hexToRgba('#zzzzzz', 1), 'rgba(0, 0, 0, 1)'); + assert.strictEqual(hexToRgba('#gg00ff', 0.5), 'rgba(0, 0, 255, 0.5)'); + assert.strictEqual(hexToRgba('#ffgg00', 1), 'rgba(255, 0, 0, 1)'); + + // Short/incomplete hex strings + assert.strictEqual(hexToRgba('#', 1), 'rgba(0, 0, 0, 1)'); + assert.strictEqual(hexToRgba('#f', 1), 'rgba(15, 0, 0, 1)'); + assert.strictEqual(hexToRgba('#ff', 1), 'rgba(255, 0, 0, 1)'); + assert.strictEqual(hexToRgba('#ff0', 1), 'rgba(255, 0, 0, 1)'); + assert.strictEqual(hexToRgba('#ff00', 1), 'rgba(255, 0, 0, 1)'); + + // Missing or non-string or without hash (these hit the first if-statement and return defaults) + assert.strictEqual(hexToRgba(null, 1), 'rgba(0, 0, 0, 1)'); + assert.strictEqual(hexToRgba(undefined, 1), 'rgba(0, 0, 0, 1)'); + assert.strictEqual(hexToRgba('', 1), 'rgba(0, 0, 0, 1)'); + assert.strictEqual(hexToRgba('ff0000', 1), 'rgba(0, 0, 0, 1)'); +});