From 9c6e2ec8ef4944172f6e771b216beaf00ed21575 Mon Sep 17 00:00:00 2001 From: kumavis Date: Mon, 21 May 2018 16:26:38 -0700 Subject: test - e2e - check for console errors after each test --- test/e2e/metamask.spec.js | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) (limited to 'test/e2e') diff --git a/test/e2e/metamask.spec.js b/test/e2e/metamask.spec.js index 707ca2560..fac560176 100644 --- a/test/e2e/metamask.spec.js +++ b/test/e2e/metamask.spec.js @@ -30,6 +30,14 @@ describe('Metamask popup page', function () { }) afterEach(async function () { + // check for console errors + const errors = await checkBrowserForConsoleErrors() + if (errors.length) { + const errorReports = errors.map(err => err.message) + const errorMessage = `Errors found in browser console:\n${errorReports.join('\n')}` + this.test.error(new Error(errorMessage)) + } + // gather extra data if test failed if (this.currentTest.state === 'failed') { await verboseReportOnFailure(this.currentTest) } @@ -300,13 +308,21 @@ describe('Metamask popup page', function () { await driver.executeScript('window.metamask.setProviderType(arguments[0])', type) } + async function checkBrowserForConsoleErrors() { + const ignoredLogTypes = ['WARNING'] + const browserLogs = await driver.manage().logs().get('browser') + const errorEntries = browserLogs.filter(entry => !ignoredLogTypes.includes(entry.level.toString())) + const errorEntryObjects = errorEntries.map(entry => entry.toJSON()) + return errorEntryObjects + } + async function verboseReportOnFailure (test) { let artifactDir if (process.env.SELENIUM_BROWSER === 'chrome') { artifactDir = `./test-artifacts/chrome/${test.title}` } else if (process.env.SELENIUM_BROWSER === 'firefox') { artifactDir = `./test-artifacts/firefox/${test.title}` - } + } const filepathBase = `${artifactDir}/test-failure` await pify(mkdirp)(artifactDir) // capture screenshot -- cgit From db08d8d43eef26005c9c022445f4530caba71ac3 Mon Sep 17 00:00:00 2001 From: kumavis Date: Mon, 21 May 2018 17:15:05 -0700 Subject: test - e2e - ignore react 'unknown props dataset' warnings --- test/e2e/metamask.spec.js | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'test/e2e') diff --git a/test/e2e/metamask.spec.js b/test/e2e/metamask.spec.js index fac560176..72861adc4 100644 --- a/test/e2e/metamask.spec.js +++ b/test/e2e/metamask.spec.js @@ -310,10 +310,13 @@ describe('Metamask popup page', function () { async function checkBrowserForConsoleErrors() { const ignoredLogTypes = ['WARNING'] + const ignoredErrorMessages = ['Warning: Unknown prop `dataset` on '] const browserLogs = await driver.manage().logs().get('browser') const errorEntries = browserLogs.filter(entry => !ignoredLogTypes.includes(entry.level.toString())) - const errorEntryObjects = errorEntries.map(entry => entry.toJSON()) - return errorEntryObjects + const errorObjects = errorEntries.map(entry => entry.toJSON()) + // ignore all errors that contain a message in `ignoredErrorMessages` + const matchedErrorObjects = errorObjects.filter(entry => !ignoredErrorMessages.some(message => entry.message.includes(message))) + return matchedErrorObjects } async function verboseReportOnFailure (test) { -- cgit From 81ff04ec279c5642a5e0a8dbc45724d2b8774850 Mon Sep 17 00:00:00 2001 From: kumavis Date: Mon, 21 May 2018 18:00:22 -0700 Subject: test - e2e - ignore favicon 404s --- test/e2e/metamask.spec.js | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'test/e2e') diff --git a/test/e2e/metamask.spec.js b/test/e2e/metamask.spec.js index 72861adc4..4ce51a91a 100644 --- a/test/e2e/metamask.spec.js +++ b/test/e2e/metamask.spec.js @@ -310,7 +310,12 @@ describe('Metamask popup page', function () { async function checkBrowserForConsoleErrors() { const ignoredLogTypes = ['WARNING'] - const ignoredErrorMessages = ['Warning: Unknown prop `dataset` on '] + const ignoredErrorMessages = [ + // React throws error warnings on "dataset", but still sets the data-* properties correctly + 'Warning: Unknown prop `dataset` on ', + // Third-party Favicon 404s show up as errors + 'favicon.ico - Failed to load resource: the server responded with a status of 404 (Not Found)', + ] const browserLogs = await driver.manage().logs().get('browser') const errorEntries = browserLogs.filter(entry => !ignoredLogTypes.includes(entry.level.toString())) const errorObjects = errorEntries.map(entry => entry.toJSON()) -- cgit From 4856c0803fb512373107453c60781d3f0d5813b3 Mon Sep 17 00:00:00 2001 From: kumavis Date: Mon, 21 May 2018 19:57:13 -0700 Subject: test - e2e - ignore 'development build of React' warning --- test/e2e/metamask.spec.js | 2 ++ 1 file changed, 2 insertions(+) (limited to 'test/e2e') diff --git a/test/e2e/metamask.spec.js b/test/e2e/metamask.spec.js index 4ce51a91a..e966517db 100644 --- a/test/e2e/metamask.spec.js +++ b/test/e2e/metamask.spec.js @@ -315,6 +315,8 @@ describe('Metamask popup page', function () { 'Warning: Unknown prop `dataset` on ', // Third-party Favicon 404s show up as errors 'favicon.ico - Failed to load resource: the server responded with a status of 404 (Not Found)', + // React Minified build - known issue blocked by test build sys + 'Warning: It looks like you\'re using a minified copy of the development build of React.', ] const browserLogs = await driver.manage().logs().get('browser') const errorEntries = browserLogs.filter(entry => !ignoredLogTypes.includes(entry.level.toString())) -- cgit From a3ca64d3210077cb1da67cfd105e8e22e978ff49 Mon Sep 17 00:00:00 2001 From: kumavis Date: Mon, 21 May 2018 19:59:21 -0700 Subject: test - e2e - ignore 'development build of Redux' warning --- test/e2e/metamask.spec.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'test/e2e') diff --git a/test/e2e/metamask.spec.js b/test/e2e/metamask.spec.js index e966517db..482259ee8 100644 --- a/test/e2e/metamask.spec.js +++ b/test/e2e/metamask.spec.js @@ -315,8 +315,10 @@ describe('Metamask popup page', function () { 'Warning: Unknown prop `dataset` on ', // Third-party Favicon 404s show up as errors 'favicon.ico - Failed to load resource: the server responded with a status of 404 (Not Found)', - // React Minified build - known issue blocked by test build sys + // React Development build - known issue blocked by test build sys 'Warning: It looks like you\'re using a minified copy of the development build of React.', + // Redux Development build - known issue blocked by test build sys + 'This means that you are running a slower development build of Redux.', ] const browserLogs = await driver.manage().logs().get('browser') const errorEntries = browserLogs.filter(entry => !ignoredLogTypes.includes(entry.level.toString())) -- cgit From 83782421bb16f809e3679d51e598b0348f17cf3b Mon Sep 17 00:00:00 2001 From: kumavis Date: Mon, 21 May 2018 20:17:46 -0700 Subject: test - e2e - only inspect console for errors in chrome --- test/e2e/metamask.spec.js | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) (limited to 'test/e2e') diff --git a/test/e2e/metamask.spec.js b/test/e2e/metamask.spec.js index 482259ee8..8ec7de16c 100644 --- a/test/e2e/metamask.spec.js +++ b/test/e2e/metamask.spec.js @@ -30,12 +30,16 @@ describe('Metamask popup page', function () { }) afterEach(async function () { - // check for console errors - const errors = await checkBrowserForConsoleErrors() - if (errors.length) { - const errorReports = errors.map(err => err.message) - const errorMessage = `Errors found in browser console:\n${errorReports.join('\n')}` - this.test.error(new Error(errorMessage)) + // logs command not supported in firefox + // https://github.com/SeleniumHQ/selenium/issues/2910 + if (process.env.SELENIUM_BROWSER === 'chrome') { + // check for console errors + const errors = await checkBrowserForConsoleErrors() + if (errors.length) { + const errorReports = errors.map(err => err.message) + const errorMessage = `Errors found in browser console:\n${errorReports.join('\n')}` + this.test.error(new Error(errorMessage)) + } } // gather extra data if test failed if (this.currentTest.state === 'failed') { -- cgit