I have series of Jasmine
tests running against an AngularJs
service that uses ECMAScript Internationalization API. They all run successfully when I run them through Chrome. However, when I use PhantomJS
to run them through maven, they all fail as it seems PhantomJs
does not support Internationalization API yet.
The error message I get for the tests using Intl object is :
1: ReferenceError: Can't find variable: Intl in localizationService.js
And the rest of the tests just fail.
The tests are simple and look like this:
it('Format date with en-us locale', (function (){
var date= "06/13/2013"
expect(service.date(date,'en-us')).toEqual("6/13/2013");
}))
and the methods in service (localizationService.js) are simple wrappers around Intl API:
function getCurrentTimeZone(){
return Intl.DateTimeFormat().resolved.timeZone
}
function date(dateInput,locale,options){
// some other stuff
// ...
if (locale) {
return _date.toLocaleDateString(locale,options);
} else {
return _date.toLocaleDateString();
}
}
My questions are:
1- Is my assumption correct that PhantomJS v1.9.2
does not support ECMAScript internationalization API
? Is there anyway to confirm that?
2- How can I approach resolving this issue? I need to run my tests through maven and I will have more tests hitting my localizationService API one way or the other.
Thanks