From 50821e479c9f0ff0e1698a8dc0bb7701272b3bbe Mon Sep 17 00:00:00 2001 From: Marvin Hagemeister Date: Fri, 26 Jul 2019 17:07:09 +0200 Subject: [PATCH 1/3] Ignore code coverage reporting for devtools. The devtools code uses newer ECMAScript features because the devtools extension is only available for Firefox and Chrome. But we didn't have such a distinction in our tests suite. That leads to failing tests on IE11. We tried running those tests only on FF and Chrome, but because karma-coverage always collects coverage data from the latest running browser, it would lead to coverage failures. The latest browser is typically slowest and you may have guessed it already: This will pretty much always be IE11. The nearterm conclusion is to just disable coverage reporting for the devtools code completely... --- debug/src/devtools/custom.js | 1 + debug/src/devtools/index.js | 1 + debug/src/devtools/renderer.js | 1 + 3 files changed, 3 insertions(+) diff --git a/debug/src/devtools/custom.js b/debug/src/devtools/custom.js index 6208b62fbb6..7133836cdeb 100644 --- a/debug/src/devtools/custom.js +++ b/debug/src/devtools/custom.js @@ -1,3 +1,4 @@ +/* istanbul ignore file */ import { Component, Fragment } from 'preact'; /** diff --git a/debug/src/devtools/index.js b/debug/src/devtools/index.js index 94348aab836..7539a8cf34a 100644 --- a/debug/src/devtools/index.js +++ b/debug/src/devtools/index.js @@ -1,3 +1,4 @@ +/* istanbul ignore file */ import { options, Component, Fragment } from 'preact'; import { Renderer } from './renderer'; diff --git a/debug/src/devtools/renderer.js b/debug/src/devtools/renderer.js index 542eca8c152..02b57e8cb67 100644 --- a/debug/src/devtools/renderer.js +++ b/debug/src/devtools/renderer.js @@ -1,3 +1,4 @@ +/* istanbul ignore file */ import { getData, getChildren, getInstance, hasDataChanged, isRoot } from './custom'; /** From b0e1a43b0a7a870ea98cc189d2c9e9baf16466d0 Mon Sep 17 00:00:00 2001 From: Marvin Hagemeister Date: Mon, 5 Aug 2019 08:37:17 +0200 Subject: [PATCH 2/3] drop! force enable saucelabs --- karma.conf.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/karma.conf.js b/karma.conf.js index 84547687fea..0a21d8c3196 100644 --- a/karma.conf.js +++ b/karma.conf.js @@ -9,6 +9,8 @@ var coverage = String(process.env.COVERAGE) === 'true', webpack = require('webpack'), path = require('path'); +sauceLabs = true; + var sauceLabsLaunchers = { sl_chrome: { base: 'SauceLabs', From eb1fa3b592edc983f56c619febf69d7d0e5b20c3 Mon Sep 17 00:00:00 2001 From: Marvin Hagemeister Date: Mon, 5 Aug 2019 09:47:57 +0200 Subject: [PATCH 3/3] Only run devtools tests in FF + Chrome --- debug/test/browser/devtools.test.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/debug/test/browser/devtools.test.js b/debug/test/browser/devtools.test.js index d088101a603..52cd781816b 100644 --- a/debug/test/browser/devtools.test.js +++ b/debug/test/browser/devtools.test.js @@ -137,7 +137,10 @@ function getRoot(element) { return element._children; } -describe('devtools', () => { +const supported = /(Chrome)|(Firefox)[^(Edge)]/i.test(navigator.userAgent); +const desc = supported ? describe : describe.skip; + +desc('devtools', () => { /** @type {import('../../src/internal').PreactElement} */ let scratch;