From 5107326c125444d202d6c6c72e33ddb5c1a67cf4 Mon Sep 17 00:00:00 2001 From: Kevin Ngo Date: Mon, 27 Mar 2017 17:15:40 -0700 Subject: [PATCH] fix tests on travis by stubbing renderer --- tests/browser/__init.test.js | 35 +++++++++++++++++++++++++++++++++++ tests/browser/index.test.js | 6 ------ tests/browser/karma.conf.js | 4 ++-- 3 files changed, 37 insertions(+), 8 deletions(-) create mode 100644 tests/browser/__init.test.js diff --git a/tests/browser/__init.test.js b/tests/browser/__init.test.js new file mode 100644 index 0000000..76e2b30 --- /dev/null +++ b/tests/browser/__init.test.js @@ -0,0 +1,35 @@ +/** + * __init.test.js is run before every test case. + */ +window.debug = true; +const AScene = require('aframe').AScene; + +navigator.getVRDisplays = function () { + var resolvePromise = Promise.resolve(); + var mockVRDisplay = { + requestPresent: resolvePromise, + exitPresent: resolvePromise, + getPose: function () { return { orientation: null, position: null }; }, + requestAnimationFrame: function () { return 1; } + }; + return Promise.resolve([mockVRDisplay]); +}; + +setup(function () { + this.sinon = sinon.sandbox.create(); + // Stubs to not create a WebGL context since Travis CI runs headless. + this.sinon.stub(AScene.prototype, 'render'); + this.sinon.stub(AScene.prototype, 'resize'); + this.sinon.stub(AScene.prototype, 'setupRenderer'); +}); + +teardown(function () { + // Clean up any attached elements. + var attachedEls = ['a-scene']; + var els = document.querySelectorAll(attachedEls.join(',')); + for (var i = 0; i < els.length; i++) { + els[i].parentNode.removeChild(els[i]); + } + this.sinon.restore(); + delete AFRAME.components.test; +}); diff --git a/tests/browser/index.test.js b/tests/browser/index.test.js index b12cff4..c088470 100644 --- a/tests/browser/index.test.js +++ b/tests/browser/index.test.js @@ -1,4 +1,3 @@ -import 'aframe'; import React from 'react'; import ReactDOM from 'react-dom'; import {Entity, Scene} from '../../src/index.js'; @@ -6,13 +5,8 @@ import {Entity, Scene} from '../../src/index.js'; const div = document.createElement('div'); document.body.appendChild(div); -setup(function () { - this.sinon = sinon.sandbox.create(); -}); - teardown(function () { while (div.firstChild) { div.removeChild(div.firstChild); } - this.sinon.restore(); }); suite('aframe-react', () => { diff --git a/tests/browser/karma.conf.js b/tests/browser/karma.conf.js index 7fe36e4..0408c21 100644 --- a/tests/browser/karma.conf.js +++ b/tests/browser/karma.conf.js @@ -13,8 +13,8 @@ module.exports = function (config) { ], frameworks: ['mocha', 'sinon-chai', 'chai-shallow-deep-equal'], preprocessors: { - 'src/**/*.js': ['webpack'], - 'browser/**/*.js': ['webpack'] + 'src/**/*.js': ['webpack', 'sourcemap'], + 'browser/**/*.js': ['webpack', 'sourcemap'] }, reporters: ['mocha'], webpack: {