// ch09-01-time-agoSpec.js describe('timeAgo Filter', function () { beforeEach(module('filterApp')); var filter; beforeEach(inject(function (timeAgoFilter) { filter = timeAgoFilter; })); it('should respond based on timestamp', function() { // The presence of new Date().getTime() makes it slightly // hard to unit test deterministically. // Ideally, we would inject a dateProvider into the timeAgo // filter, but we are trying to keep it simple for now. // So, we assume that our tests are fast enough to execute // in mere milliseconds. var t = new Date().getTime(); t -= 10000; expect(filter(t)).toEqual('seconds ago'); expect(filter(t, true)).toEqual('minutes ago'); var fmin = t - 1000 * 60; expect(filter(fmin)).toEqual('minutes ago'); expect(filter(fmin, true)).toEqual('minutes ago'); var fhour = t - 1000 * 60 * 68; expect(filter(fhour)).toEqual('hours ago'); expect(filter(fhour, true)).toEqual('hours ago'); var fday = t - 1000 * 60 * 60 * 26; expect(filter(fday)).toEqual('days ago'); expect(filter(fday, true)).toEqual('days ago'); var fmon = t - 1000 * 60 * 60 * 24 * 34; expect(filter(fmon)).toEqual('months ago'); expect(filter(fmon, true)).toEqual('months ago'); }); });