leagueofcomicgeeks
Version:
Unofficial Node.js library for interacting with League of Comic Geeks
74 lines (67 loc) • 2.77 kB
JavaScript
const _ = require('lodash');
const allIssuesPullList = require('./test-data/all-issues-pull-list');
const filteredIssuesPullList = require('./test-data/filtered-issues-pull-list');
const sortedIssuesPullList = require('./test-data/sorted-issues-pull-list');
module.exports = function (lofcg, pullListDate) {
describe('get issues list', function () {
it('should provide no comics in pull list with an invalid user id', function (done) {
lofcg.pullList.get('foo', pullListDate, (err, pullList) => {
expect(err).toBeNull();
expect(pullList.length).toBe(0);
expect(pullList).toEqual([]);
done();
});
});
it('should provide a list of comics from a users pull list', function (done) {
lofcg.pullList.get(readonlyUserId, pullListDate, (err, pullList) => {
expect(err).toBeNull();
expect(pullList.length).toBe(2);
expect(pullList).toEqual(allIssuesPullList);
_.each(pullList, (comic) => {
expect(comic).toBeAComicIssue();
});
done();
});
});
it('should provide a filtered list of comics from a users pull list', function (done) {
lofcg.pullList.get(readonlyUserId, pullListDate, { publishers: ['Image Comics'] }, (err, pullList) => {
expect(err).toBeNull();
expect(pullList.length).toBe(1);
expect(pullList).toEqual(filteredIssuesPullList);
_.each(pullList, (comic) => {
expect(comic).toBeAComicIssue();
});
done();
});
});
it('should provide a sorted list of comics from a users pull list', function (done) {
lofcg.pullList.get(readonlyUserId, pullListDate, { sort: 'desc' }, (err, pullList) => {
expect(err).toBeNull();
expect(pullList.length).toBe(2);
expect(pullList).toEqual(sortedIssuesPullList);
_.each(pullList, (comic) => {
expect(comic).toBeAComicIssue();
});
done();
});
});
it('should provide a custom sorted list of comics from a users pull list', function (done) {
lofcg.pullList.get(readonlyUserId, pullListDate, { sort: 'pulls' }, (err, pullList) => {
expect(err).toBeNull();
expect(pullList.length).toBe(2);
expect(pullList).toEqual(sortedIssuesPullList); // Custom sorting is the same order as descending
_.each(pullList, (comic) => {
expect(comic).toBeAComicIssue();
});
done();
});
});
it('should return an error when provided with an invalid date', function (done) {
lofcg.pullList.get(readonlyUserId, 'foo', (err) => {
expect(err).toEqual(jasmine.any(Error));
expect(err.message).toEqual('Invalid date value provided');
done();
});
});
});
};