all files / redux/modules/stars/ stars.test.ts

92.31% Statements 24/26
100% Branches 0/0
83.33% Functions 10/12
92.31% Lines 24/26
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56                                                               
"use strict";
var chai_1 = require('chai');
var TestHelper_tsx_1 = require('../../../helpers/TestHelper.tsx');
var stars = require('./stars');
/** Mock Data */
var githubResponse = {
    stargazers_count: 999,
};
var errResponse = {
    message: 'ERROR :-O',
};
/** Stargazers Module */
describe('Stars Module', function () {
    /** Action Creators */
    describe('Action Creators', function () {
        describe('Get Stars (Async)', function () {
            afterEach(function () {
                TestHelper_tsx_1.fetchMock.restore();
            });
            /** 200 */
            it('dispatches Request and Success Actions on OK requests', function (done) {
                TestHelper_tsx_1.fetchMock.mock('https://api.github.com/repos/abcd/abcd', {
                    status: 200,
                    body: githubResponse,
                });
                var expectedActions = [
                    { type: stars.STARS_REQUEST },
                    { type: stars.STARS_SUCCESS, count: githubResponse.stargazers_count },
                ];
                var store = TestHelper_tsx_1.mockStore({});
                store.dispatch(stars.getStars())
                    .then(function () { return chai_1.expect(store.getActions()).to.eql(expectedActions); })
                    .then(function () { return done(); })
                    .catch(function (err) { return done(err); });
            });
            /** 400 */
            it('dispatches Failure on failed requests', function (done) {
                TestHelper_tsx_1.fetchMock.mock('https://api.github.com/repos/abcd/abcd', {
                    status: 400,
                    body: errResponse,
                });
                var expectedActions = [
                    { type: stars.STARS_REQUEST },
                    { type: stars.STARS_FAILURE, message: errResponse },
                ];
                var store = TestHelper_tsx_1.mockStore({});
                store.dispatch(stars.getStars())
                    .then(function () { return chai_1.expect(store.getActions()).to.eql(expectedActions); })
                    .then(function () { return done(); })
                    .catch(function (err) { return done(err); });
            });
        });
    });
});