আমি আমার প্রতিক্রিয়া উপাদানগুলির জন্য সহায়ক ফাইলে আমার ডেট লজিকের বেশিরভাগটি করতে moment.js ব্যবহার করছি তবে জেস্টে লাতে কীভাবে একটি তারিখ উপহাস করা যায় তা আমি নির্ধারণ করতে সক্ষম হইনি sinon.useFakeTimers()
।
ঠাট্টা ডক্স শুধুমাত্র মত টাইমার ফাংশন সম্পর্কে কথা বলতে setTimeout
, setInterval
ইত্যাদি কিন্তু একটি তারিখ নির্ধারণের এবং তারপর চেক যে আমার জন্ম ফাংশন তারা বোঝানো করছি কি সাহায্যের না।
এখানে আমার কিছু জেএস ফাইল রয়েছে:
var moment = require('moment');
var DateHelper = {
DATE_FORMAT: 'MMMM D',
API_DATE_FORMAT: 'YYYY-MM-DD',
formatDate: function(date) {
return date.format(this.DATE_FORMAT);
},
isDateToday: function(date) {
return this.formatDate(date) === this.formatDate(moment());
}
};
module.exports = DateHelper;
এবং আমি এখানে জাস্ট ব্যবহার করে সেট আপ করেছি:
jest.dontMock('../../../dashboard/calendar/date-helper')
.dontMock('moment');
describe('DateHelper', function() {
var DateHelper = require('../../../dashboard/calendar/date-helper'),
moment = require('moment'),
DATE_FORMAT = 'MMMM D';
describe('formatDate', function() {
it('should return the date formatted as DATE_FORMAT', function() {
var unformattedDate = moment('2014-05-12T00:00:00.000Z'),
formattedDate = DateHelper.formatDate(unformattedDate);
expect(formattedDate).toEqual('May 12');
});
});
describe('isDateToday', function() {
it('should return true if the passed in date is today', function() {
var today = moment();
expect(DateHelper.isDateToday(today)).toEqual(true);
});
});
});
এখন এই পরীক্ষাগুলি পাস হয়েছে কারণ আমি মুহূর্তটি ব্যবহার করছি এবং আমার ফাংশনগুলি মুহুর্তটি ব্যবহার করে তবে এটি কিছুটা অস্থির বলে মনে হয় এবং আমি পরীক্ষাগুলির জন্য একটি নির্দিষ্ট সময় নির্ধারণ করতে চাই।
কীভাবে এটি সম্পাদন করা যায় তার কোনও ধারণা?
Date
পছন্দ মতো অন্যান্য ফাংশন ব্যবহার করছিvalueOf()
।