gruntjs / grunt-contrib-jasmine

Run jasmine specs headlessly through Headless Chrome

Home Page:http://gruntjs.com/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Test does not support ES6

HendrikFreund opened this issue · comments

Hi,
I want to test my app with grunt and jasmine. My grunt file is setup but one of my modules
cannot be found because there are ES6 statements inside (e.g. array.find(x => x.name === name)).
What can I do to support this as well?

Thanks,
Hendrik

Same issue here. Jasmine doesn't support ES6 yet, so we'll need to take the transpiler route.

HI. It's not jasmine that doesn't support ES6.
It's because this plugin runs the tests in PhantomJS and phantom does not currently support ES6.

There is a beta version that you can try but until it's officially released we'll need to wait for the phantom dependancies of this project t be updated as well.

keep an eye on ariya/phantomjs#14506

Yes it is right, phantomjs does not support ES6 yet. I ended up using babel for transpiling my files (using grunt):

 "babel": {    
      dist: {
        files: {         
             "tests/fixtures/general/hfSettingsViewModel.js": "viewModels/hfSettingsViewModel.js"
            , "tests/fixtures/general/receiverGuiSettingsViewModel.js": "viewModels/receiverGuiSettingsViewModel.js"
            , "tests/fixtures/general/userPresetsManagerViewModel.js": "viewModels/userPresetsManagerViewModel.js"
            , "tests/fixtures/general/tdmaMultiCarrierViewModel.js": "viewModels/tdmaMultiCarrierViewModel.js"
            , "tests/fixtures/general/dataStructs.js": "helpers/dataStructs.js"
        }
      }
    },

That means transpile my real files from viewModels/* to tests/fixtures/general/*.
Then use these files for jasmine:

  jasmine: {
      general: {
        src : [  
                  , 'tests/fixtures/general/userPresetsManagerViewModel.js'      
                  , 'tests/fixtures/general/tdmaMultiCarrierViewModel.js'  
                  , 'tests/fixtures/general/hfSettingsViewModel.js'
                  , 'tests/fixtures/general/receiverGuiSettingsViewModel.js'                       
        ]       
      }
}

This makes our unit tests great again :-)

02e72f3 should make this work now.