"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); });
});
});
});
});
|