diff --git a/e2e/__tests__/__snapshots__/wrongEnv.test.ts.snap b/e2e/__tests__/__snapshots__/wrongEnv.test.ts.snap index 121c47d4524d..d551b668ba8c 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: navigator is not defined + + 30 | + 31 | test('use navigator', () => { + > 32 | const userAgent = navigator.userAgent; + | ^ + 33 | + 34 | console.log(userAgent); + 35 | + + at Object.navigator (__tests__/node.js:32:21) +`; + 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..ec43dca816f5 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 = navigator.userAgent; + + 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')) {