diff --git a/lib/versioning/node/index.spec.ts b/lib/versioning/node/index.spec.ts
index 05ed63c55562e19dd86c76f0b2b24747da25ba74..26c8929f2553e9b71170b5d743a3a4c8fcc53e22 100644
--- a/lib/versioning/node/index.spec.ts
+++ b/lib/versioning/node/index.spec.ts
@@ -9,49 +9,47 @@ describe('versioning/node/index', () => {
   afterEach(() => {
     DateTime.local = dtLocal;
   });
-  it('returns normalized newVersion', () => {
-    expect(
-      nodever.getNewValue({
-        currentValue: '1.0.0',
-        rangeStrategy: 'replace',
-        currentVersion: '1.0.0',
-        newVersion: 'v1.1.0',
-      })
-    ).toEqual('1.1.0');
-  });
-  it('returns range', () => {
-    expect(
-      nodever.getNewValue({
-        currentValue: '~8.0.0',
-        rangeStrategy: 'replace',
-        currentVersion: '8.0.2',
-        newVersion: 'v8.2.0',
-      })
-    ).toEqual('~8.2.0');
-  });
-  it('isStable', () => {
+
+  test.each`
+    currentValue | rangeStrategy | currentVersion | newVersion  | expected
+    ${'1.0.0'}   | ${'replace'}  | ${'1.0.0'}     | ${'v1.1.0'} | ${'1.1.0'}
+    ${'~8.0.0'}  | ${'replace'}  | ${'8.0.2'}     | ${'v8.2.0'} | ${'~8.2.0'}
+  `(
+    'getNewValue($currentValue, $rangeStrategy, $currentVersion, $newVersion, $expected) === $expected',
+    ({ currentValue, rangeStrategy, currentVersion, newVersion, expected }) => {
+      const res = nodever.getNewValue({
+        currentValue,
+        rangeStrategy,
+        currentVersion,
+        newVersion,
+      });
+      expect(res).toBe(expected);
+    }
+  );
+
+  describe('isStable', () => {
     const t1 = DateTime.fromISO('2020-09-01');
     const t2 = DateTime.fromISO('2021-06-01');
-    [
-      ['16.0.0', t1, false],
-      ['15.0.0', t1, false],
-      ['14.9.0', t1, false],
-      ['14.0.0', t2, true],
-      ['12.0.3', t1, true],
-      ['v12.0.3', t1, true],
-      ['12.0.3a', t1, false],
-      ['11.0.0', t1, false],
-
-      ['10.0.0', t1, true],
-      ['10.0.999', t1, true],
-      ['10.1.0', t1, true],
 
-      ['10.0.0a', t1, false],
-      ['9.0.0', t1, false],
-    ].forEach(([version, time, result]) => {
+    test.each`
+      version       | time  | expected
+      ${'16.0.0'}   | ${t1} | ${false}
+      ${'15.0.0'}   | ${t1} | ${false}
+      ${'14.9.0'}   | ${t1} | ${false}
+      ${'14.0.0'}   | ${t2} | ${true}
+      ${'12.0.3'}   | ${t1} | ${true}
+      ${'v12.0.3'}  | ${t1} | ${true}
+      ${'12.0.3a'}  | ${t1} | ${false}
+      ${'11.0.0'}   | ${t1} | ${false}
+      ${'10.0.0'}   | ${t1} | ${true}
+      ${'10.0.999'} | ${t1} | ${true}
+      ${'10.1.0'}   | ${t1} | ${true}
+      ${'10.0.0a'}  | ${t1} | ${false}
+      ${'9.0.0'}    | ${t1} | ${false}
+    `('isStable("$version") === $expected', ({ version, time, expected }) => {
       DateTime.local = (...args) =>
         args.length ? dtLocal.apply(DateTime, args) : time;
-      expect(isStable(version as string)).toBe(result);
+      expect(isStable(version as string)).toBe(expected);
     });
   });