test: fix clone() test for latest node version
authorJérôme Benoit <jerome.benoit@sap.com>
Wed, 14 Feb 2024 00:22:11 +0000 (01:22 +0100)
committerJérôme Benoit <jerome.benoit@sap.com>
Wed, 14 Feb 2024 00:22:11 +0000 (01:22 +0100)
Signed-off-by: Jérôme Benoit <jerome.benoit@sap.com>
build-requirements.js
package.json
pnpm-lock.yaml
tests/utils/Utils.test.ts

index e950b741492e6f54504b61638475c6366104815a..f73e3e89c642fbb315175cfd586e178108d8ac37 100644 (file)
@@ -1,5 +1,5 @@
 import chalk from 'chalk'
-import semVer from 'semver'
+import { satisfies } from 'semver'
 import packageJson from './package.json' assert { type: 'json' }
 import { version, exit } from 'node:process'
 
@@ -8,7 +8,7 @@ import { version, exit } from 'node:process'
  */
 export const checkNodeVersion = () => {
   const enginesNodeVersion = packageJson.engines.node
-  if (semVer.satisfies(version, enginesNodeVersion) === false) {
+  if (satisfies(version, enginesNodeVersion) === false) {
     console.error(
       chalk.red(
         `Required node version ${enginesNodeVersion} not satisfied with current version ${version}`
index 06e68b49a4d3554e69c1f65850ebb483ff50c9ff..83f51b67c8c706c80d0e2eb267958f9351b1dd9b 100644 (file)
     "@mikro-orm/cli": "^6.1.3",
     "@release-it/bumper": "^6.0.1",
     "@types/node": "^20.11.17",
+    "@types/semver": "^7.5.7",
     "@types/tar": "^6.1.11",
     "@types/ws": "^8.5.10",
     "@typescript-eslint/eslint-plugin": "^7.0.1",
index 3ef7bf3c6a19fc3fb092f358c13f4899f6a5a32b..893a782f00a0f94828ea3aadb659cc4840ec7b77 100644 (file)
@@ -96,6 +96,9 @@ devDependencies:
   '@types/node':
     specifier: ^20.11.17
     version: 20.11.17
+  '@types/semver':
+    specifier: ^7.5.7
+    version: 7.5.7
   '@types/tar':
     specifier: ^6.1.11
     version: 6.1.11
index 3622d8aec45cb0e80ad81381bf46af96b30b6362..0ed7d6b67a54eea7d96aff3ed2a40c2675a99413 100644 (file)
@@ -1,7 +1,9 @@
+import { version } from 'node:process'
 import { describe, it } from 'node:test'
 
 import { hoursToMilliseconds, hoursToSeconds } from 'date-fns'
 import { expect } from 'expect'
+import { satisfies } from 'semver'
 
 import { Constants } from '../../src/utils/Constants.js'
 import {
@@ -341,9 +343,10 @@ await describe('Utils test suite', async () => {
     const date = new Date()
     expect(clone(date)).toStrictEqual(date)
     expect(clone(date) === date).toBe(false)
-    // The URL object seems to have not enumerable properties
-    const url = new URL('https://domain.tld')
-    expect(clone(url)).toStrictEqual({})
+    if (satisfies(version, '>=21.0.0')) {
+      const url = new URL('https://domain.tld')
+      expect(() => clone(url)).toThrowError(new Error('Cannot clone object of unsupported type.'))
+    }
     const map = new Map([['1', '2']])
     expect(clone(map)).toStrictEqual(map)
     expect(clone(map) === map).toBe(false)
@@ -351,9 +354,9 @@ await describe('Utils test suite', async () => {
     expect(clone(set)).toStrictEqual(set)
     expect(clone(set) === set).toBe(false)
     const weakMap = new WeakMap([[{ 1: 1 }, { 2: 2 }]])
-    expect(() => clone(weakMap)).toThrow(new Error('#<WeakMap> could not be cloned.'))
+    expect(() => clone(weakMap)).toThrowError(new Error('#<WeakMap> could not be cloned.'))
     const weakSet = new WeakSet([{ 1: 1 }, { 2: 2 }])
-    expect(() => clone(weakSet)).toThrow(new Error('#<WeakSet> could not be cloned.'))
+    expect(() => clone(weakSet)).toThrowError(new Error('#<WeakSet> could not be cloned.'))
   })
 
   await it('Verify hasOwnProp()', () => {