From 0b6adfa41da1cb2505553ca2d4b019d9af84c281 Mon Sep 17 00:00:00 2001 From: Jakob Scheid Date: Wed, 3 Jun 2026 23:36:17 +0200 Subject: [PATCH 1/8] test(css-dimensions-util): add empty test file --- src/utils/__tests__/cssDimensions.test.js | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 src/utils/__tests__/cssDimensions.test.js diff --git a/src/utils/__tests__/cssDimensions.test.js b/src/utils/__tests__/cssDimensions.test.js new file mode 100644 index 0000000..347cfbb --- /dev/null +++ b/src/utils/__tests__/cssDimensions.test.js @@ -0,0 +1,15 @@ +/* +Copyright 2026 Seekra + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ \ No newline at end of file From a0d592d26e6683edb16f6fa052bdb1d3ed3e0555 Mon Sep 17 00:00:00 2001 From: Jakob Scheid Date: Wed, 3 Jun 2026 23:38:04 +0200 Subject: [PATCH 2/8] test(css-dimensions-util): add test boilerplate --- src/utils/__tests__/cssDimensions.test.js | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/utils/__tests__/cssDimensions.test.js b/src/utils/__tests__/cssDimensions.test.js index 347cfbb..5747280 100644 --- a/src/utils/__tests__/cssDimensions.test.js +++ b/src/utils/__tests__/cssDimensions.test.js @@ -12,4 +12,10 @@ distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. -*/ \ No newline at end of file +*/ + +import { test } from 'vitest'; + +test.for([ +])('ensureUnit returns %expected with input $dimension', () => { +}); \ No newline at end of file From 008e38e54ac9b98e847bd051a30f2dc44d672ffa Mon Sep 17 00:00:00 2001 From: Jakob Scheid Date: Wed, 3 Jun 2026 23:40:14 +0200 Subject: [PATCH 3/8] test(css-dimensions-util): add test boilerplate --- src/utils/__tests__/cssDimensions.test.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/utils/__tests__/cssDimensions.test.js b/src/utils/__tests__/cssDimensions.test.js index 5747280..9e7e24c 100644 --- a/src/utils/__tests__/cssDimensions.test.js +++ b/src/utils/__tests__/cssDimensions.test.js @@ -17,5 +17,5 @@ limitations under the License. import { test } from 'vitest'; test.for([ -])('ensureUnit returns %expected with input $dimension', () => { +])('ensureUnit returns $expected with input $dimension', ({ dimension, expected }) => { }); \ No newline at end of file From 67fc878575f04399927dcfba05e5bbb0a1c023be Mon Sep 17 00:00:00 2001 From: Jakob Scheid Date: Wed, 3 Jun 2026 23:40:59 +0200 Subject: [PATCH 4/8] test(css-dimensions-util): add actual test --- src/utils/__tests__/cssDimensions.test.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/utils/__tests__/cssDimensions.test.js b/src/utils/__tests__/cssDimensions.test.js index 9e7e24c..af14ab6 100644 --- a/src/utils/__tests__/cssDimensions.test.js +++ b/src/utils/__tests__/cssDimensions.test.js @@ -14,8 +14,10 @@ See the License for the specific language governing permissions and limitations under the License. */ -import { test } from 'vitest'; +import { expect, test } from 'vitest'; +import { ensureUnit } from '../cssDimensions'; test.for([ ])('ensureUnit returns $expected with input $dimension', ({ dimension, expected }) => { + expect(ensureUnit(dimension)).toBe(expected); }); \ No newline at end of file From a365322a5b4bdb75196bbd00c46d77786a557ca2 Mon Sep 17 00:00:00 2001 From: Jakob Scheid Date: Wed, 3 Jun 2026 23:43:48 +0200 Subject: [PATCH 5/8] test(css-dimensions-util): add test cases with empty dimensions --- src/utils/__tests__/cssDimensions.test.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/utils/__tests__/cssDimensions.test.js b/src/utils/__tests__/cssDimensions.test.js index af14ab6..1b96c14 100644 --- a/src/utils/__tests__/cssDimensions.test.js +++ b/src/utils/__tests__/cssDimensions.test.js @@ -18,6 +18,8 @@ import { expect, test } from 'vitest'; import { ensureUnit } from '../cssDimensions'; test.for([ + { dimension: null, expected: '0px' }, + { dimension: undefined, expected: '0px' } ])('ensureUnit returns $expected with input $dimension', ({ dimension, expected }) => { expect(ensureUnit(dimension)).toBe(expected); }); \ No newline at end of file From 975e84be46a6792c9abae129d42e310034f234d0 Mon Sep 17 00:00:00 2001 From: Jakob Scheid Date: Thu, 4 Jun 2026 08:50:04 +0200 Subject: [PATCH 6/8] test(css-dimensions-util): add test cases with numbers as dimensions --- src/utils/__tests__/cssDimensions.test.js | 44 ++++++++++++++++++++++- 1 file changed, 43 insertions(+), 1 deletion(-) diff --git a/src/utils/__tests__/cssDimensions.test.js b/src/utils/__tests__/cssDimensions.test.js index 1b96c14..0413208 100644 --- a/src/utils/__tests__/cssDimensions.test.js +++ b/src/utils/__tests__/cssDimensions.test.js @@ -19,7 +19,49 @@ import { ensureUnit } from '../cssDimensions'; test.for([ { dimension: null, expected: '0px' }, - { dimension: undefined, expected: '0px' } + { dimension: undefined, expected: '0px' }, + + { dimension: 0, expected: '0px' }, + { dimension: -0, expected: '0px' }, + { dimension: -1, expected: '-1px' }, + { dimension: -42, expected: '-42px' }, + { dimension: 1, expected: '1px' }, + { dimension: 42, expected: '42px' }, + + { dimension: 0.0, expected: '0px' }, + { dimension: -0.0, expected: '0px' }, + { dimension: -1.0, expected: '-1px' }, + { dimension: -42.0, expected: '-42px' }, + { dimension: 1.0, expected: '1px' }, + { dimension: 42.0, expected: '42px' }, + + { dimension: 0.42, expected: '0.42px' }, + { dimension: -0.42, expected: '-0.42px' }, + { dimension: -1.42, expected: '-1.42px' }, + { dimension: -42.42, expected: '-42.42px' }, + { dimension: 1.42, expected: '1.42px' }, + { dimension: 42.42, expected: '42.42px' }, + + { dimension: '0', expected: '0px' }, + { dimension: '-0', expected: '-0px' }, + { dimension: '-1', expected: '-1px' }, + { dimension: '-42', expected: '-42px' }, + { dimension: '1', expected: '1px' }, + { dimension: '42', expected: '42px' }, + + { dimension: '0.0', expected: '0.0px' }, + { dimension: '-0.0', expected: '-0.0px' }, + { dimension: '-1.0', expected: '-1.0px' }, + { dimension: '-42.0', expected: '-42.0px' }, + { dimension: '1.0', expected: '1.0px' }, + { dimension: '42.0', expected: '42.0px' }, + + { dimension: '0.42', expected: '0.42px' }, + { dimension: '-0.42', expected: '-0.42px' }, + { dimension: '-1.42', expected: '-1.42px' }, + { dimension: '-42.42', expected: '-42.42px' }, + { dimension: '1.42', expected: '1.42px' }, + { dimension: '42.42', expected: '42.42px' } ])('ensureUnit returns $expected with input $dimension', ({ dimension, expected }) => { expect(ensureUnit(dimension)).toBe(expected); }); \ No newline at end of file From 9ec2d7fd6fb96b27ed908f49015936ea6b7f12df Mon Sep 17 00:00:00 2001 From: Jakob Scheid Date: Thu, 4 Jun 2026 08:50:15 +0200 Subject: [PATCH 7/8] test(css-dimensions-util): add test cases with numbers and units as dimensions --- src/utils/__tests__/cssDimensions.test.js | 44 ++++++++++++++++++++++- 1 file changed, 43 insertions(+), 1 deletion(-) diff --git a/src/utils/__tests__/cssDimensions.test.js b/src/utils/__tests__/cssDimensions.test.js index 0413208..a25366c 100644 --- a/src/utils/__tests__/cssDimensions.test.js +++ b/src/utils/__tests__/cssDimensions.test.js @@ -61,7 +61,49 @@ test.for([ { dimension: '-1.42', expected: '-1.42px' }, { dimension: '-42.42', expected: '-42.42px' }, { dimension: '1.42', expected: '1.42px' }, - { dimension: '42.42', expected: '42.42px' } + { dimension: '42.42', expected: '42.42px' }, + + { dimension: '0px', expected: '0px' }, + { dimension: '-0px', expected: '-0px' }, + { dimension: '-1px', expected: '-1px' }, + { dimension: '-42px', expected: '-42px' }, + { dimension: '1px', expected: '1px' }, + { dimension: '42px', expected: '42px' }, + + { dimension: '0.0px', expected: '0.0px' }, + { dimension: '-0.0px', expected: '-0.0px' }, + { dimension: '-1.0px', expected: '-1.0px' }, + { dimension: '-42.0px', expected: '-42.0px' }, + { dimension: '1.0px', expected: '1.0px' }, + { dimension: '42.0px', expected: '42.0px' }, + + { dimension: '0.42px', expected: '0.42px' }, + { dimension: '-0.42px', expected: '-0.42px' }, + { dimension: '-1.42px', expected: '-1.42px' }, + { dimension: '-42.42px', expected: '-42.42px' }, + { dimension: '1.42px', expected: '1.42px' }, + { dimension: '42.42px', expected: '42.42px' }, + + { dimension: '0em', expected: '0em' }, + { dimension: '-0em', expected: '-0em' }, + { dimension: '-1em', expected: '-1em' }, + { dimension: '-42em', expected: '-42em' }, + { dimension: '1em', expected: '1em' }, + { dimension: '42em', expected: '42em' }, + + { dimension: '0.0em', expected: '0.0em' }, + { dimension: '-0.0em', expected: '-0.0em' }, + { dimension: '-1.0em', expected: '-1.0em' }, + { dimension: '-42.0em', expected: '-42.0em' }, + { dimension: '1.0em', expected: '1.0em' }, + { dimension: '42.0em', expected: '42.0em' }, + + { dimension: '0.42em', expected: '0.42em' }, + { dimension: '-0.42em', expected: '-0.42em' }, + { dimension: '-1.42em', expected: '-1.42em' }, + { dimension: '-42.42em', expected: '-42.42em' }, + { dimension: '1.42em', expected: '1.42em' }, + { dimension: '42.42em', expected: '42.42em' } ])('ensureUnit returns $expected with input $dimension', ({ dimension, expected }) => { expect(ensureUnit(dimension)).toBe(expected); }); \ No newline at end of file From 6c12550ee7b0253bf4cc325b89c80c0d0b78b9fe Mon Sep 17 00:00:00 2001 From: Jakob Scheid Date: Thu, 4 Jun 2026 08:55:59 +0200 Subject: [PATCH 8/8] test(css-dimensions-util): add test cases with complex dimensions --- src/utils/__tests__/cssDimensions.test.js | 161 ++++++++++++---------- 1 file changed, 87 insertions(+), 74 deletions(-) diff --git a/src/utils/__tests__/cssDimensions.test.js b/src/utils/__tests__/cssDimensions.test.js index a25366c..1543987 100644 --- a/src/utils/__tests__/cssDimensions.test.js +++ b/src/utils/__tests__/cssDimensions.test.js @@ -18,92 +18,105 @@ import { expect, test } from 'vitest'; import { ensureUnit } from '../cssDimensions'; test.for([ - { dimension: null, expected: '0px' }, - { dimension: undefined, expected: '0px' }, + { dimension: null, expected: '0px' }, + { dimension: undefined, expected: '0px' }, - { dimension: 0, expected: '0px' }, - { dimension: -0, expected: '0px' }, - { dimension: -1, expected: '-1px' }, - { dimension: -42, expected: '-42px' }, - { dimension: 1, expected: '1px' }, - { dimension: 42, expected: '42px' }, + { dimension: 0, expected: '0px' }, + { dimension: -0, expected: '0px' }, + { dimension: -1, expected: '-1px' }, + { dimension: -42, expected: '-42px' }, + { dimension: 1, expected: '1px' }, + { dimension: 42, expected: '42px' }, - { dimension: 0.0, expected: '0px' }, - { dimension: -0.0, expected: '0px' }, - { dimension: -1.0, expected: '-1px' }, - { dimension: -42.0, expected: '-42px' }, - { dimension: 1.0, expected: '1px' }, - { dimension: 42.0, expected: '42px' }, + { dimension: 0.0, expected: '0px' }, + { dimension: -0.0, expected: '0px' }, + { dimension: -1.0, expected: '-1px' }, + { dimension: -42.0, expected: '-42px' }, + { dimension: 1.0, expected: '1px' }, + { dimension: 42.0, expected: '42px' }, - { dimension: 0.42, expected: '0.42px' }, - { dimension: -0.42, expected: '-0.42px' }, - { dimension: -1.42, expected: '-1.42px' }, - { dimension: -42.42, expected: '-42.42px' }, - { dimension: 1.42, expected: '1.42px' }, - { dimension: 42.42, expected: '42.42px' }, + { dimension: 0.42, expected: '0.42px' }, + { dimension: -0.42, expected: '-0.42px' }, + { dimension: -1.42, expected: '-1.42px' }, + { dimension: -42.42, expected: '-42.42px' }, + { dimension: 1.42, expected: '1.42px' }, + { dimension: 42.42, expected: '42.42px' }, - { dimension: '0', expected: '0px' }, - { dimension: '-0', expected: '-0px' }, - { dimension: '-1', expected: '-1px' }, - { dimension: '-42', expected: '-42px' }, - { dimension: '1', expected: '1px' }, - { dimension: '42', expected: '42px' }, + { dimension: '0', expected: '0px' }, + { dimension: '-0', expected: '-0px' }, + { dimension: '-1', expected: '-1px' }, + { dimension: '-42', expected: '-42px' }, + { dimension: '1', expected: '1px' }, + { dimension: '42', expected: '42px' }, - { dimension: '0.0', expected: '0.0px' }, - { dimension: '-0.0', expected: '-0.0px' }, - { dimension: '-1.0', expected: '-1.0px' }, - { dimension: '-42.0', expected: '-42.0px' }, - { dimension: '1.0', expected: '1.0px' }, - { dimension: '42.0', expected: '42.0px' }, + { dimension: '0.0', expected: '0.0px' }, + { dimension: '-0.0', expected: '-0.0px' }, + { dimension: '-1.0', expected: '-1.0px' }, + { dimension: '-42.0', expected: '-42.0px' }, + { dimension: '1.0', expected: '1.0px' }, + { dimension: '42.0', expected: '42.0px' }, - { dimension: '0.42', expected: '0.42px' }, - { dimension: '-0.42', expected: '-0.42px' }, - { dimension: '-1.42', expected: '-1.42px' }, - { dimension: '-42.42', expected: '-42.42px' }, - { dimension: '1.42', expected: '1.42px' }, - { dimension: '42.42', expected: '42.42px' }, + { dimension: '0.42', expected: '0.42px' }, + { dimension: '-0.42', expected: '-0.42px' }, + { dimension: '-1.42', expected: '-1.42px' }, + { dimension: '-42.42', expected: '-42.42px' }, + { dimension: '1.42', expected: '1.42px' }, + { dimension: '42.42', expected: '42.42px' }, - { dimension: '0px', expected: '0px' }, - { dimension: '-0px', expected: '-0px' }, - { dimension: '-1px', expected: '-1px' }, - { dimension: '-42px', expected: '-42px' }, - { dimension: '1px', expected: '1px' }, - { dimension: '42px', expected: '42px' }, + { dimension: '0px', expected: '0px' }, + { dimension: '-0px', expected: '-0px' }, + { dimension: '-1px', expected: '-1px' }, + { dimension: '-42px', expected: '-42px' }, + { dimension: '1px', expected: '1px' }, + { dimension: '42px', expected: '42px' }, - { dimension: '0.0px', expected: '0.0px' }, - { dimension: '-0.0px', expected: '-0.0px' }, - { dimension: '-1.0px', expected: '-1.0px' }, - { dimension: '-42.0px', expected: '-42.0px' }, - { dimension: '1.0px', expected: '1.0px' }, - { dimension: '42.0px', expected: '42.0px' }, + { dimension: '0.0px', expected: '0.0px' }, + { dimension: '-0.0px', expected: '-0.0px' }, + { dimension: '-1.0px', expected: '-1.0px' }, + { dimension: '-42.0px', expected: '-42.0px' }, + { dimension: '1.0px', expected: '1.0px' }, + { dimension: '42.0px', expected: '42.0px' }, - { dimension: '0.42px', expected: '0.42px' }, - { dimension: '-0.42px', expected: '-0.42px' }, - { dimension: '-1.42px', expected: '-1.42px' }, - { dimension: '-42.42px', expected: '-42.42px' }, - { dimension: '1.42px', expected: '1.42px' }, - { dimension: '42.42px', expected: '42.42px' }, + { dimension: '0.42px', expected: '0.42px' }, + { dimension: '-0.42px', expected: '-0.42px' }, + { dimension: '-1.42px', expected: '-1.42px' }, + { dimension: '-42.42px', expected: '-42.42px' }, + { dimension: '1.42px', expected: '1.42px' }, + { dimension: '42.42px', expected: '42.42px' }, - { dimension: '0em', expected: '0em' }, - { dimension: '-0em', expected: '-0em' }, - { dimension: '-1em', expected: '-1em' }, - { dimension: '-42em', expected: '-42em' }, - { dimension: '1em', expected: '1em' }, - { dimension: '42em', expected: '42em' }, + { dimension: '0em', expected: '0em' }, + { dimension: '-0em', expected: '-0em' }, + { dimension: '-1em', expected: '-1em' }, + { dimension: '-42em', expected: '-42em' }, + { dimension: '1em', expected: '1em' }, + { dimension: '42em', expected: '42em' }, - { dimension: '0.0em', expected: '0.0em' }, - { dimension: '-0.0em', expected: '-0.0em' }, - { dimension: '-1.0em', expected: '-1.0em' }, - { dimension: '-42.0em', expected: '-42.0em' }, - { dimension: '1.0em', expected: '1.0em' }, - { dimension: '42.0em', expected: '42.0em' }, + { dimension: '0.0em', expected: '0.0em' }, + { dimension: '-0.0em', expected: '-0.0em' }, + { dimension: '-1.0em', expected: '-1.0em' }, + { dimension: '-42.0em', expected: '-42.0em' }, + { dimension: '1.0em', expected: '1.0em' }, + { dimension: '42.0em', expected: '42.0em' }, - { dimension: '0.42em', expected: '0.42em' }, - { dimension: '-0.42em', expected: '-0.42em' }, - { dimension: '-1.42em', expected: '-1.42em' }, - { dimension: '-42.42em', expected: '-42.42em' }, - { dimension: '1.42em', expected: '1.42em' }, - { dimension: '42.42em', expected: '42.42em' } + { dimension: '0.42em', expected: '0.42em' }, + { dimension: '-0.42em', expected: '-0.42em' }, + { dimension: '-1.42em', expected: '-1.42em' }, + { dimension: '-42.42em', expected: '-42.42em' }, + { dimension: '1.42em', expected: '1.42em' }, + { dimension: '42.42em', expected: '42.42em' }, + + { dimension: 'calc(42px - 1em)', expected: 'calc(42px - 1em)' }, + { dimension: 'calc(42px)', expected: 'calc(42px)' }, + { dimension: 'calc(42vh)', expected: 'calc(42vh)' }, + { dimension: 'min(42px, 1em)', expected: 'min(42px, 1em)' }, + { dimension: 'max(42px, 5rem)', expected: 'max(42px, 5rem)' }, + { dimension: 'clamp(42vh, 23vw, 13cap)', expected: 'clamp(42vh, 23vw, 13cap)' }, + + { dimension: 'calc(42px-1em)', expected: 'calc(42px-1em)' }, + { dimension: 'min(42px,1em)', expected: 'min(42px,1em)' }, + { dimension: 'max(42px,5rem)', expected: 'max(42px,5rem)' }, + { dimension: 'clamp(42vh,23vw,13cap)', expected: 'clamp(42vh,23vw,13cap)' }, + { dimension: 'clamp( 42vh,23vw,13cap )', expected: 'clamp( 42vh,23vw,13cap )' } ])('ensureUnit returns $expected with input $dimension', ({ dimension, expected }) => { expect(ensureUnit(dimension)).toBe(expected); }); \ No newline at end of file