diff --git a/.nycrc b/.nycrc index 2666fa80950..fb6e00fab3c 100644 --- a/.nycrc +++ b/.nycrc @@ -1,3 +1,6 @@ { - "extends": "node_modules/ocular-dev-tools/templates/.nycrc" + "extends": "node_modules/ocular-dev-tools/templates/.nycrc", + "include": [ + "modules/**/src/**/*.js" + ] } diff --git a/modules/core/package.json b/modules/core/package.json index 29027a2044f..3a41ae62f22 100644 --- a/modules/core/package.json +++ b/modules/core/package.json @@ -37,7 +37,7 @@ "gl-matrix": "^3.0.0", "math.gl": "^2.3.0", "mjolnir.js": "^2.1.2", - "probe.gl": "^3.0.1", + "probe.gl": "^3.0.2", "seer": "^0.2.4", "viewport-mercator-project": "^6.1.0" } diff --git a/ocular-dev-tools.config.js b/ocular-dev-tools.config.js index 602e4c96950..81cec5422e0 100644 --- a/ocular-dev-tools.config.js +++ b/ocular-dev-tools.config.js @@ -27,9 +27,9 @@ const config = { }, entry: { - test: 'test/modules/index.js', + test: 'test/node.js', 'test-browser': 'test/browser.js', - bench: 'test/bench/index.js', + bench: 'test/bench/node.js', 'bench-browser': 'test/bench/browser.js', size: 'test/size/import-nothing.js' } diff --git a/package.json b/package.json index ffb658e4e02..4f049cfad8f 100644 --- a/package.json +++ b/package.json @@ -36,15 +36,15 @@ "update-release-branch": "scripts/update-release-branch.sh" }, "resolutions": { - "lerna": "3.14.1" + "puppeteer": "1.12.0" }, "browser": { "jsdom": false }, "devDependencies": { "@luma.gl/effects": "^7.1.0-beta.1", - "@probe.gl/bench": "^3.0.1", - "@probe.gl/test-utils": "^3.0.1", + "@probe.gl/bench": "^3.0.2", + "@probe.gl/test-utils": "^3.0.2", "babel-loader": "^8.0.0", "babel-plugin-inline-webgl-constants": "^1.0.0", "babel-plugin-remove-glsl-comments": "^0.1.0", @@ -58,7 +58,7 @@ "gl": "^4.2.2", "glsl-transpiler": "^1.8.3", "jsdom": "^15.0.0", - "ocular-dev-tools": "0.0.18", + "ocular-dev-tools": "0.0.27", "png.js": "^0.1.1", "pre-commit": "^1.2.2", "pre-push": "^0.1.1", diff --git a/test/bench/node.js b/test/bench/node.js new file mode 100644 index 00000000000..68b05a0c8cf --- /dev/null +++ b/test/bench/node.js @@ -0,0 +1,3 @@ +require('reify'); + +require('./index'); diff --git a/test/browser.js b/test/browser.js index 3fc7bf45fb8..f9b8e403db2 100644 --- a/test/browser.js +++ b/test/browser.js @@ -43,6 +43,15 @@ enableDOMLogging({ test('deck.gl', t => { require('./modules'); + + // Tests currently only work in browser + require('./modules/json/json-render.spec'); + require('./modules/main/bundle'); + require('./modules/aggregation-layers/utils/gpu-grid-aggregator.spec'); + require('./modules/aggregation-layers/utils/grid-aggregation-utils.spec'); + require('./modules/core/lib/pick-layers.spec'); + require('./render'); + t.end(); }); diff --git a/test/modules/index.js b/test/modules/index.js index fc328584732..022683d9801 100644 --- a/test/modules/index.js +++ b/test/modules/index.js @@ -29,31 +29,3 @@ import './mapbox'; import './json'; import './react'; import './jupyter-widget'; - -if (typeof document !== 'undefined') { - // Tests currently only work in browser - require('./json/json-render.spec'); - - require('./main/bundle'); - require('./aggregation-layers/utils/gpu-grid-aggregator.spec'); - require('./aggregation-layers/utils/grid-aggregation-utils.spec'); - require('./core/lib/pick-layers.spec'); -} else if (typeof global !== 'undefined') { - // Running in Node - const {JSDOM} = require('jsdom'); - const dom = new JSDOM(``); - // These globals are required by @jupyter-widgets/base - /* global global */ - global.window = dom.window; - global.navigator = dom.window.navigator; - global.document = dom.window.document; - global.Element = dom.window.Element; - global.__JSDOM__ = true; - - const {gl} = require('@deck.gl/test-utils'); - // Create a dummy canvas for the headless gl context - const canvas = global.document.createElement('canvas'); - canvas.width = gl.drawingBufferWidth; - canvas.height = gl.drawingBufferHeight; - gl.canvas = canvas; -} diff --git a/test/node.js b/test/node.js new file mode 100644 index 00000000000..58ebf882a26 --- /dev/null +++ b/test/node.js @@ -0,0 +1,21 @@ +require('reify'); + +// Polyfill with JSDOM +const {JSDOM} = require('jsdom'); +const dom = new JSDOM(``); +// These globals are required by @jupyter-widgets/base +/* global global */ +global.window = dom.window; +global.navigator = dom.window.navigator; +global.document = dom.window.document; +global.Element = dom.window.Element; +global.__JSDOM__ = true; + +const {gl} = require('@deck.gl/test-utils'); +// Create a dummy canvas for the headless gl context +const canvas = global.document.createElement('canvas'); +canvas.width = gl.drawingBufferWidth; +canvas.height = gl.drawingBufferHeight; +gl.canvas = canvas; + +require('./modules'); diff --git a/yarn.lock b/yarn.lock index defd7b3967f..8220e8555d4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1714,23 +1714,23 @@ "@phosphor/signaling" "^1.2.2" "@phosphor/virtualdom" "^1.1.2" -"@probe.gl/bench@^3.0.1": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@probe.gl/bench/-/bench-3.0.1.tgz#51ff87b0b93ccc9fc16c791f42436a3e8aab62d1" - integrity sha512-Hk7JJWGDdKGtHYmYd8ljzjCtYSwTtZHPFcMjznDJeB5CwaCrOONsMAjtOptuA3pbQyfOuZsEGW534OaGeXBdOg== +"@probe.gl/bench@^3.0.2": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@probe.gl/bench/-/bench-3.0.3.tgz#ae2a2769dc1e25a5318367c482e5dc8d8c0635d2" + integrity sha512-Nl9ynW4ZkAjIaN0BpkT+MaehckhNBkSQRc4J9MpkeUXokzb6s0XHTO7YaGAadhDrvSfEdwXMfrT5YhHG0S1uZg== dependencies: "@babel/runtime" "^7.0.0" - probe.gl "3.0.1" + probe.gl "3.0.3" -"@probe.gl/test-utils@^3.0.1": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@probe.gl/test-utils/-/test-utils-3.0.1.tgz#b83b3dacfea2ba390f2148dec22eaa3040092de5" - integrity sha512-34sUDyqJAjWHrK8HOQuOKCAfzbvlYUqXj6oOvgVE3c6GEl2Y0hXRL1lUuLbec0rc7iV+RoeurqV89ocP1ugXvQ== +"@probe.gl/test-utils@^3.0.2": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@probe.gl/test-utils/-/test-utils-3.0.3.tgz#92354d1dfd45343ca556d41f4228a0bc08a77506" + integrity sha512-AaQ9ACrYEG2RwUmAQNnzdqTlsoGXHfi3Hyt9h6H1dWsDZHSAmpqvClPcNi3wcrMNqBvGztEe/bVXoFPsw3v3ZA== dependencies: "@babel/runtime" "^7.0.0" pixelmatch "^4.0.2" - probe.gl "3.0.1" - puppeteer "1.8.0" + probe.gl "3.0.3" + puppeteer "^1.16.0" "@types/backbone@^1.3.33": version "1.3.47" @@ -6557,7 +6557,7 @@ lcov-parse@^0.0.10: resolved "https://registry.yarnpkg.com/lcov-parse/-/lcov-parse-0.0.10.tgz#1b0b8ff9ac9c7889250582b70b71315d9da6d9a3" integrity sha1-GwuP+ayceIklBYK3C3ExXZ2m2aM= -lerna@3.14.1, lerna@^2.9.1: +lerna@^3.14.1: version "3.14.1" resolved "https://registry.yarnpkg.com/lerna/-/lerna-3.14.1.tgz#6bce5d2d4958e853f51387f8f41a8f2d9aa4a8ea" integrity sha512-lQxmGeEECjOMI3pRh2+I6jazoEWhEfvZNIs7XaX71op33AVwyjlY/nQ1GJGrPhxYBuQnlPgH0vH/nC/lcLaVkw== @@ -7077,7 +7077,12 @@ mime@1.4.1: resolved "https://registry.yarnpkg.com/mime/-/mime-1.4.1.tgz#121f9ebc49e3766f311a76e1fa1c8003c4b03aa6" integrity sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ== -mime@^2.0.3, mime@^2.3.1: +mime@^2.0.3: + version "2.4.4" + resolved "https://registry.yarnpkg.com/mime/-/mime-2.4.4.tgz#bd7b91135fc6b01cde3e9bae33d659b63d8857e5" + integrity sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA== + +mime@^2.3.1: version "2.3.1" resolved "https://registry.yarnpkg.com/mime/-/mime-2.3.1.tgz#b1621c54d63b97c47d3cfe7f7215f7d64517c369" integrity sha512-OEUllcVoydBHGN1z84yfQDimn58pZNNNXgZlHXSboxMlFvgI6MXSWpWKpFRra7H1HxpVhHTkrghfRW49k6yjeg== @@ -7787,10 +7792,10 @@ octokit-pagination-methods@^1.1.0: resolved "https://registry.yarnpkg.com/octokit-pagination-methods/-/octokit-pagination-methods-1.1.0.tgz#cf472edc9d551055f9ef73f6e42b4dbb4c80bea4" integrity sha512-fZ4qZdQ2nxJvtcasX7Ghl+WlWS/d9IgnBIwFZXVNNZUmzpno91SX5bc5vuxiuKoCtK78XxGGNuSCrDC7xYB3OQ== -ocular-dev-tools@0.0.18: - version "0.0.18" - resolved "https://registry.yarnpkg.com/ocular-dev-tools/-/ocular-dev-tools-0.0.18.tgz#cef24f308076fc765556a9bbdd79fde7a3f46d45" - integrity sha512-3kwimmRPbaacpXrggKPXakFOL0JjbK9py5/nsO87tQAqi0gkHAVgEr1YmYsnnwPLuhFWVKVYrI+YtAMXg4JUMA== +ocular-dev-tools@0.0.27: + version "0.0.27" + resolved "https://registry.yarnpkg.com/ocular-dev-tools/-/ocular-dev-tools-0.0.27.tgz#6d66ab938c404ba37ff910c3f80817d099a72782" + integrity sha512-OrKiIfiku6a1PmzZS9ahBVXPK3i1v9zDeKoSXwar4esglyUrU7nOpV9hd2qZ+c00AcDlyH28y0i9pIWqpZQZJA== dependencies: "@babel/cli" "^7.0.0" "@babel/core" "^7.0.0" @@ -7803,7 +7808,7 @@ ocular-dev-tools@0.0.18: eslint-config-prettier "^2.9.0" eslint-config-uber-es2015 "^3.0.0" html-webpack-plugin "^3.2.0" - lerna "^2.9.1" + lerna "^3.14.1" module-alias "^2.0.0" nyc "^13.3.0" prettier "1.14.3" @@ -8467,17 +8472,10 @@ private@^0.1.6: resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" integrity sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg== -probe.gl@3.0.1, probe.gl@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/probe.gl/-/probe.gl-3.0.1.tgz#5b0693f6c0b970e0d39ecba5e5a90acc92e638f3" - integrity sha512-Ub7pHdey+boUJ5m46tpA8sl9hwDEZTOgGtvikPd4jRqzBWvulA5tPGXvnM1TB+eJP8JoOxM34Vh6uFbSuSdQIQ== - dependencies: - "@babel/runtime" "^7.0.0" - -probe.gl@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/probe.gl/-/probe.gl-3.0.2.tgz#31b7844a2a9600d88c2cb35916f98a81e83a313a" - integrity sha512-Qc4myo375YtzRfQa1QhDIfXi4qjFJ9oJ9oe54TXjyS4vpLYd4T2j57NljQ64h1wqeL8dAVidGo2BNn3VG1tK3w== +probe.gl@3.0.3, probe.gl@^3.0.2: + version "3.0.3" + resolved "https://registry.yarnpkg.com/probe.gl/-/probe.gl-3.0.3.tgz#e4d13bbd38c5895b54b4740e72468e65d66ae584" + integrity sha512-nkE+rh4m2JRQqorW327X7rVogknVmNvgrtcDG4F3OxckAIHSi4l/PUPy6GVaI6PIUJC7CYx4WYwcdgh4RUJe7A== dependencies: "@babel/runtime" "^7.0.0" @@ -8501,6 +8499,11 @@ progress@^2.0.0: resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.0.tgz#8a1be366bf8fc23db2bd23f10c6fe920b4389d1f" integrity sha1-ihvjZr+Pwj2yvSPxDG/pILQ4nR8= +progress@^2.0.1: + version "2.0.3" + resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" + integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== + promise-inflight@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" @@ -8587,9 +8590,9 @@ psl@^1.1.24: integrity sha512-AeUmQ0oLN02flVHXWh9sSJF7mcdFq0ppid/JkErufc3hGIV/AMa8Fo9VgDo/cT2jFdOWoFvHp90qqBH54W+gjQ== psl@^1.1.28: - version "1.1.32" - resolved "https://registry.yarnpkg.com/psl/-/psl-1.1.32.tgz#3f132717cf2f9c169724b2b6caf373cf694198db" - integrity sha512-MHACAkHpihU/REGGPLj4sEfc/XKW2bheigvHO1dUqjaKigMp1C8+WLQYRGgeKFMsw5PMfegZcaN8IDXK/cD0+g== + version "1.1.33" + resolved "https://registry.yarnpkg.com/psl/-/psl-1.1.33.tgz#5533d9384ca7aab86425198e10e8053ebfeab661" + integrity sha512-LTDP2uSrsc7XCb5lO7A8BI1qYxRe/8EqlRvMeEl6rsnYAqDOl8xHR+8lSAIVfrNaSAlTPTNOCgNjWcoUL3AZsw== public-encrypt@^4.0.0: version "4.0.2" @@ -8650,19 +8653,19 @@ punycode@^2.1.0, punycode@^2.1.1: resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== -puppeteer@1.8.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/puppeteer/-/puppeteer-1.8.0.tgz#9e8bbd2f5448cc19cac220efc0512837104877ad" - integrity sha512-wJ7Fxs03l4dy/ZXQACUKBBobIuJaS4NHq44q7/QinpAXFMwJMJFEIPjzoksVzUhZxQe+RXnjXH69mg13yMh0BA== +puppeteer@1.12.0, puppeteer@^1.16.0: + version "1.12.0" + resolved "https://registry.yarnpkg.com/puppeteer/-/puppeteer-1.12.0.tgz#325b97f42aa6cd66ae4d3d27839278e1f0b8e0e5" + integrity sha512-+riSxJFPQpwGZvNHFeB7vEefwfdHNSstQmjdzUKZxPp/Qt1Dw9iKRAewl8X0ntdXZz4UR4jODLiM03Iw9HDnyw== dependencies: - debug "^3.1.0" + debug "^4.1.0" extract-zip "^1.6.6" https-proxy-agent "^2.2.1" mime "^2.0.3" - progress "^2.0.0" + progress "^2.0.1" proxy-from-env "^1.0.0" rimraf "^2.6.1" - ws "^5.1.1" + ws "^6.1.0" q@^1.5.1: version "1.5.1" @@ -9373,9 +9376,9 @@ sax@^1.2.4: integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== saxes@^3.1.9: - version "3.1.9" - resolved "https://registry.yarnpkg.com/saxes/-/saxes-3.1.9.tgz#c1c197cd54956d88c09f960254b999e192d7058b" - integrity sha512-FZeKhJglhJHk7eWG5YM0z46VHmI3KJpMBAQm3xa9meDvd+wevB5GuBB0wc0exPInZiBBHqi00DbS8AcvCGCFMw== + version "3.1.10" + resolved "https://registry.yarnpkg.com/saxes/-/saxes-3.1.10.tgz#6028a4d6d65f0b5f5b5d250c0500be6a7950fe13" + integrity sha512-G/mVZCCGhJqgS+I7wT5gBHyTNXLe2SQcu2qmhwl1OKcSHyJEXKQY2CLT+qWIxV+m6uiGMLfSOJGLQQHhklIeEQ== dependencies: xmlchars "^1.3.1" @@ -10057,9 +10060,9 @@ supports-color@^6.0.0, supports-color@^6.1.0: has-flag "^3.0.0" symbol-tree@^3.2.2: - version "3.2.2" - resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.2.tgz#ae27db38f660a7ae2e1c3b7d1bc290819b8519e6" - integrity sha1-rifbOPZgp64uHDt9G8KQgZuFGeY= + version "3.2.4" + resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" + integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== table@4.0.2: version "4.0.2" @@ -11038,13 +11041,6 @@ write@^0.2.1: dependencies: mkdirp "^0.5.1" -ws@^5.1.1: - version "5.2.2" - resolved "https://registry.yarnpkg.com/ws/-/ws-5.2.2.tgz#dffef14866b8e8dc9133582514d1befaf96e980f" - integrity sha512-jaHFD6PFv6UgoIVda6qZllptQsMlDEJkTQcybzzXDYM1XO9Y8em691FGMPmM46WGyLU4z9KMgQN+qrux/nhlHA== - dependencies: - async-limiter "~1.0.0" - ws@^6.0.0: version "6.1.4" resolved "https://registry.yarnpkg.com/ws/-/ws-6.1.4.tgz#5b5c8800afab925e94ccb29d153c8d02c1776ef9" @@ -11052,10 +11048,17 @@ ws@^6.0.0: dependencies: async-limiter "~1.0.0" +ws@^6.1.0: + version "6.2.1" + resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.1.tgz#442fdf0a47ed64f59b6a5d8ff130f4748ed524fb" + integrity sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA== + dependencies: + async-limiter "~1.0.0" + ws@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.0.0.tgz#79351cbc3f784b3c20d0821baf4b4ff809ffbf51" - integrity sha512-cknCal4k0EAOrh1SHHPPWWh4qm93g1IuGGGwBjWkXmCG7LsDtL8w9w+YVfaF+KSVwiHQKDIMsSLBVftKf9d1pg== + version "7.0.1" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.0.1.tgz#1a04e86cc3a57c03783f4910fdb090cf31b8e165" + integrity sha512-ILHfMbuqLJvnSgYXLgy4kMntroJpe8hT41dOVWM8bxRuw6TK4mgMp9VJUNsZTEc5Bh+Mbs0DJT4M0N+wBG9l9A== dependencies: async-limiter "^1.0.0"