From 23182a947eab9763a1c0f91ad7e913fe13bd5221 Mon Sep 17 00:00:00 2001 From: Simen Bekkhus Date: Sat, 28 Mar 2020 10:28:15 +0100 Subject: [PATCH] check navigator --- .../__snapshots__/wrongEnv.test.ts.snap | 26 +++++++++++++++++++ e2e/__tests__/wrongEnv.test.ts | 4 +++ e2e/wrong-env/__tests__/node.js | 8 ++++++ packages/jest-message-util/src/index.ts | 3 ++- 4 files changed, 40 insertions(+), 1 deletion(-) diff --git a/e2e/__tests__/__snapshots__/wrongEnv.test.ts.snap b/e2e/__tests__/__snapshots__/wrongEnv.test.ts.snap index 121c47d4524d..212ec44757d7 100644 --- a/e2e/__tests__/__snapshots__/wrongEnv.test.ts.snap +++ b/e2e/__tests__/__snapshots__/wrongEnv.test.ts.snap @@ -4,6 +4,7 @@ exports[`Wrong globals for environment print useful error for document 1`] = ` FAIL __tests__/node.js ✕ use document ○ skipped use window + ○ skipped use navigator ● use document @@ -23,6 +24,30 @@ FAIL __tests__/node.js at Object.document (__tests__/node.js:16:15) `; +exports[`Wrong globals for environment print useful error for navigator 1`] = ` +FAIL __tests__/node.js + ✕ use navigator + ○ skipped use document + ○ skipped use window + + ● use navigator + + The error below may be caused by using the wrong test environment, see https://jestjs.io/docs/en/configuration#testenvironment-string. + Consider using the "jsdom" test environment. + + ReferenceError: window is not defined + + 30 | + 31 | test('use navigator', () => { + > 32 | const {userAgent} = window.navigator; + | ^ + 33 | + 34 | console.log(userAgent); + 35 | + + at Object.window (__tests__/node.js:32:23) +`; + exports[`Wrong globals for environment print useful error for unref 1`] = ` FAIL __tests__/jsdom.js ✕ use unref @@ -49,6 +74,7 @@ exports[`Wrong globals for environment print useful error for window 1`] = ` FAIL __tests__/node.js ✕ use window ○ skipped use document + ○ skipped use navigator ● use window diff --git a/e2e/__tests__/wrongEnv.test.ts b/e2e/__tests__/wrongEnv.test.ts index cc34bf454601..2cb5f255ed92 100644 --- a/e2e/__tests__/wrongEnv.test.ts +++ b/e2e/__tests__/wrongEnv.test.ts @@ -24,6 +24,10 @@ describe('Wrong globals for environment', () => { assertFailuresAndSnapshot(['node', '-t=document']); }); + it('print useful error for navigator', () => { + assertFailuresAndSnapshot(['node', '-t=navigator']); + }); + it('print useful error for unref', () => { assertFailuresAndSnapshot(['jsdom', '-t=unref']); }); diff --git a/e2e/wrong-env/__tests__/node.js b/e2e/wrong-env/__tests__/node.js index bc8becde278a..f6a76f88d4ae 100644 --- a/e2e/wrong-env/__tests__/node.js +++ b/e2e/wrong-env/__tests__/node.js @@ -27,3 +27,11 @@ test('use window', () => { expect(1).toBe(1); }); + +test('use navigator', () => { + const {userAgent} = window.navigator; + + console.log(userAgent); + + expect(1).toBe(1); +}); diff --git a/packages/jest-message-util/src/index.ts b/packages/jest-message-util/src/index.ts index 200b5d7dea5f..d46f75ffd0ac 100644 --- a/packages/jest-message-util/src/index.ts +++ b/packages/jest-message-util/src/index.ts @@ -95,7 +95,8 @@ const blankStringRegexp = /^\s*$/; function checkForCommonEnvironmentErrors(error: string) { if ( error.includes('ReferenceError: document is not defined') || - error.includes('ReferenceError: window is not defined') + error.includes('ReferenceError: window is not defined') || + error.includes('ReferenceError: navigator is not defined') ) { return warnAboutWrongTestEnvironment(error, 'jsdom'); } else if (error.includes('.unref is not a function')) {