diff --git a/compat/test/browser/testUtils.js b/compat/test/browser/testUtils.js index 04ed784717..8746cf1236 100644 --- a/compat/test/browser/testUtils.js +++ b/compat/test/browser/testUtils.js @@ -10,13 +10,13 @@ export function getSymbol(name, fallback) { // eslint-disable-next-line if ( Function.prototype.toString - .call(eval('Symbol.for')) + .call((0, eval)('Symbol.for')) .match(/\[native code\]/) ) { // Concatenate these string literals to prevent the test // harness and/or Babel from modifying the symbol value. // eslint-disable-next-line - out = eval('Sym' + 'bol.for("' + name + '")'); + out = (0, eval)('Sym' + 'bol.for("' + name + '")'); } } catch (e) {} diff --git a/package-lock.json b/package-lock.json index d886e43b1d..5d3b1bdc58 100644 --- a/package-lock.json +++ b/package-lock.json @@ -20,6 +20,7 @@ "@types/chai": "^4.1.2", "@types/mocha": "^5.0.0", "@types/node": "^14.14.10", + "@types/sinon": "^9.0.11", "babel-plugin-istanbul": "^6.0.0", "babel-plugin-transform-async-to-promises": "^0.8.15", "babel-plugin-transform-rename-properties": "0.1.0", @@ -2360,6 +2361,21 @@ "@types/node": "*" } }, + "node_modules/@types/sinon": { + "version": "9.0.11", + "resolved": "https://registry.npmjs.org/@types/sinon/-/sinon-9.0.11.tgz", + "integrity": "sha512-PwP4UY33SeeVKodNE37ZlOsR9cReypbMJOhZ7BVE0lB+Hix3efCOxiJWiE5Ia+yL9Cn2Ch72EjFTRze8RZsNtg==", + "dev": true, + "dependencies": { + "@types/sinonjs__fake-timers": "*" + } + }, + "node_modules/@types/sinonjs__fake-timers": { + "version": "8.1.5", + "resolved": "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.5.tgz", + "integrity": "sha512-mQkU2jY8jJEF7YHjHvsQO8+3ughTL1mcnn96igfhONmR+fUPSKIkefQYpSe8bsly2Ep7oQbn/6VG5/9/0qcArQ==", + "dev": true + }, "node_modules/@types/ua-parser-js": { "version": "0.7.36", "resolved": "https://registry.npmjs.org/@types/ua-parser-js/-/ua-parser-js-0.7.36.tgz", @@ -3958,9 +3974,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001383", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001383.tgz", - "integrity": "sha512-swMpEoTp5vDoGBZsYZX7L7nXHe6dsHxi9o6/LKf/f0LukVtnrxly5GVb/fWdCDTqi/yw6Km6tiJ0pmBacm0gbg==", + "version": "1.0.30001614", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001614.tgz", + "integrity": "sha512-jmZQ1VpmlRwHgdP1/uiKzgiAuGOfLEJsYFP4+GBou/QQ4U6IOJCB4NP1c+1p9RGLpwObcT94jA5/uO+F1vBbog==", "dev": true, "funding": [ { @@ -3970,6 +3986,10 @@ { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" } ] }, @@ -17789,6 +17809,21 @@ "@types/node": "*" } }, + "@types/sinon": { + "version": "9.0.11", + "resolved": "https://registry.npmjs.org/@types/sinon/-/sinon-9.0.11.tgz", + "integrity": "sha512-PwP4UY33SeeVKodNE37ZlOsR9cReypbMJOhZ7BVE0lB+Hix3efCOxiJWiE5Ia+yL9Cn2Ch72EjFTRze8RZsNtg==", + "dev": true, + "requires": { + "@types/sinonjs__fake-timers": "*" + } + }, + "@types/sinonjs__fake-timers": { + "version": "8.1.5", + "resolved": "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.5.tgz", + "integrity": "sha512-mQkU2jY8jJEF7YHjHvsQO8+3ughTL1mcnn96igfhONmR+fUPSKIkefQYpSe8bsly2Ep7oQbn/6VG5/9/0qcArQ==", + "dev": true + }, "@types/ua-parser-js": { "version": "0.7.36", "resolved": "https://registry.npmjs.org/@types/ua-parser-js/-/ua-parser-js-0.7.36.tgz", @@ -19003,9 +19038,9 @@ } }, "caniuse-lite": { - "version": "1.0.30001383", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001383.tgz", - "integrity": "sha512-swMpEoTp5vDoGBZsYZX7L7nXHe6dsHxi9o6/LKf/f0LukVtnrxly5GVb/fWdCDTqi/yw6Km6tiJ0pmBacm0gbg==", + "version": "1.0.30001614", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001614.tgz", + "integrity": "sha512-jmZQ1VpmlRwHgdP1/uiKzgiAuGOfLEJsYFP4+GBou/QQ4U6IOJCB4NP1c+1p9RGLpwObcT94jA5/uO+F1vBbog==", "dev": true }, "capital-case": { diff --git a/package.json b/package.json index 8042ccb03f..c5f235ba4a 100644 --- a/package.json +++ b/package.json @@ -270,6 +270,7 @@ "@types/chai": "^4.1.2", "@types/mocha": "^5.0.0", "@types/node": "^14.14.10", + "@types/sinon": "^9.0.11", "babel-plugin-istanbul": "^6.0.0", "babel-plugin-transform-async-to-promises": "^0.8.15", "babel-plugin-transform-rename-properties": "0.1.0", diff --git a/test/browser/getDomSibling.test.js b/test/browser/getDomSibling.test.js index ee12f3224a..66a6aa8921 100644 --- a/test/browser/getDomSibling.test.js +++ b/test/browser/getDomSibling.test.js @@ -5,7 +5,7 @@ import { setupScratch, teardown } from '../_util/helpers'; /** @jsx createElement */ describe('getDomSibling', () => { - /** @type {import('../../src/internal').PreactElement} */ + /** @type {HTMLDivElement} */ let scratch; const getRoot = dom => dom._children; diff --git a/test/extensions.d.ts b/test/extensions.d.ts index c810c3bc8f..e86d5a6177 100644 --- a/test/extensions.d.ts +++ b/test/extensions.d.ts @@ -1,5 +1,16 @@ -declare module Chai { - export interface Assertion { - equalNode(node: Node | null, message?: string): void; +declare global { + namespace Chai { + interface Assertion { + equalNode(node: Node | null, message?: string): void; + called: Assertion; + calledOnce: Assertion; + calledTwice: Assertion; + calledWith(...args: any[]): Assertion; + calledWithMatch(...args: Record[]): Assertion; + } } + var expect: Chai.ExpectStatic; + var sinon: Sinon; } + +export {};