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 :-)