ch09-01-time-agoSpec.js 1.37 KB
// 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');
    });
});