Момент, возвращающий в браузере другой результат, чем в модульном тесте кармы - PullRequest
0 голосов
/ 17 апреля 2019

Я пишу некоторые модульные тесты для моего приложения AngularJS с кармой и жасмином. Я также использую моменты.

Когда я вызываю ту же функцию из библиотеки моментов в браузере, я получаю другой результат, чем из модульного теста кармы.

Это нарушает мои юнит-тесты.

В браузере вот что я получаю:

enter image description here

В моем модульном тесте я получил другой результат. Например, когда я вызываю функцию, чтобы получить начало месяца и недели, я получаю «1» вместо 53 для номера недели.

Calendar.data.currentCalendarMonth = moment('01-01-2017', dateFormat).clone().startOf('month');

//showing different results than in the browser
console.log(Calendar.data.currentCalendarMonth.format());
console.log(' week ', Calendar.data.currentCalendarMonth.week());

enter image description here

Вот мой кодекс с воспроизведенной ошибкой: https://codepen.io/aubz/pen/VNQjgV

Редактировать: я использую следующие зависимости момента в моем проекте:

"moment-timezone": "0.5.4",
'moment/min/moment-with-locales.js',
'moment-timezone/builds/moment-timezone-with-data.js',

1 Ответ

0 голосов
/ 18 апреля 2019

Проблема заключалась в том, что мое приложение использовало en-us, а модульные тесты использовали en-gb. Я должен был явно установить язык в момент в модульных тестах.

beforeEach(inject(function (_Calendar_) {
    Calendar = _Calendar_;
    Calendar.clear();
    moment.locale('en-gb');
}));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...