From 9c28522fa8cb80106f3127ed873e3e397b935c7b Mon Sep 17 00:00:00 2001
From: Sergei Zharinov <zharinov@users.noreply.github.com>
Date: Tue, 21 Sep 2021 19:19:39 +0300
Subject: [PATCH] tests: Refactor tests for node versioning scheme (#11837)

Co-authored-by: Michael Kriese <michael.kriese@visualon.de>
---
 lib/versioning/node/index.spec.ts | 74 +++++++++++++++----------------
 1 file changed, 36 insertions(+), 38 deletions(-)

diff --git a/lib/versioning/node/index.spec.ts b/lib/versioning/node/index.spec.ts
index 05ed63c555..26c8929f25 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);
     });
   });
 
-- 
GitLab