Meteor jasmine-client-integration tests only run when app physically launched in browser

282 views Asked by At

When I attempt to run the tests using

JASMINE_BROWSER=PhantomJS meteor --test

I get the following output from PhantomJS

[PhantomJS] TypeError: instanceof called on an object with an invalid prototype property.

at which point nothing happens unless I open the app in my browser and then the tests complete. Seems to be the same issue as this closed one. I should add that my only integration test at this point (to rule out PhantomJS issues) is

describe("jasmineTest", function(){
    it("1 equals 1", function(){
        expect(1).toEqual(1);
    });
});

My versions are

$ meteor list
accounts-password                  1.1.1  Password support for accounts
alanning:roles                     1.2.13  Role-based authorization
dburles:google-maps                1.1.3  Google Maps Javascript API v3
fortawesome:fontawesome            4.4.0  Font Awesome (official): 500+ scalable vector icons, customizable via CSS, Retina friendly
imsky:holder                       2.8.1  Holder uses SVG to render image placeholders entirely in browser.
insecure                           1.0.3  Allow all database writes by default
iron:router                        1.0.9  Routing specifically designed for Meteor
jquery                             1.11.3_2  Manipulate the DOM using CSS selectors
manuelschoebel:wait-on-lib         0.3.0  Use Meteor Iron-Routers waitOn to load external javascript
materialize:materialize            0.97.0  Materialize (official): A modern responsive front-end framework based on Material Design
matteodem:easy-search              1.6.2  Easy-to-use search with Blaze Components (+ Elastic Search support)
meteor-platform                    1.2.2  Include a standard set of Meteor packages in your app
meteorhacks:kadira                 2.23.0  Performance Monitoring for Meteor
msavin:mongol                      1.1.5  The insanely handy development package for Meteor.
nicolaslopezj:tabular-materialize  1.2.1  Datatables for large or small datasets in Meteor
peernohell:c3                      1.1.3  C3 (0.4.10) charting library based on D3.
reactive-var                       1.0.5  Reactive variable
sacha:spin                         2.3.1  Simple spinner package for Meteor
sanjo:jasmine                      0.17.0  Velocity integration of the Jasmine testing framework
stevezhu:lodash                    3.10.1  A utility library delivering consistency, customization, performance, & extras.
useraccounts:iron-routing          1.12.1  UserAccounts package providing routes configuration capability via iron:router.
useraccounts:materialize           1.12.1  Accounts Templates styled for Materialize Css.
velocity:html-reporter             0.8.2  Reactive Velocity test reports in your app.

UPDATE

The instanceof called on an object with an invalid prototype property error seems to be resolved by using PhantomJS 2.

I have subsequently found a simple workaround for the client-integration tests not running, whereby I just move the client-integration tests to the client-unit directory. This, however, seems exactly that, a workaround. I would still like to know what is causing the problem, and how it can be resolved without my hacky workaround.

1

There are 1 answers

0
Philip O'Brien On BEST ANSWER

It turns out it is a bug, the issue is raised here