leagueofcomicgeeks
Version:
Unofficial Node.js library for interacting with League of Comic Geeks
54 lines (49 loc) • 1.97 kB
JavaScript
const _ = require('lodash');
const allIssuesCollection = require('./test-data/all-issues-collection');
const filteredIssuesCollection = require('./test-data/filtered-issues-collection');
const sortedIssuesCollection = require('./test-data/sorted-issues-collection');
module.exports = function (lofcg) {
describe('get issues list', function () {
it('should provide no comics in collection with an invalid user id', function (done) {
lofcg.collection.get('foo', (err, collection) => {
expect(err).toBeNull();
expect(collection.length).toBe(0);
expect(collection).toEqual([]);
done();
});
});
it('should provide a list of comics from a users collection', function (done) {
lofcg.collection.get(readonlyUserId, (err, collection) => {
expect(err).toBeNull();
expect(collection.length).toBe(86);
expect(collection).toEqual(allIssuesCollection);
_.each(collection, (comic) => {
expect(comic).toBeAComicIssue();
});
done();
});
});
it('should provide a filtered list of comics from a users collection', function (done) {
lofcg.collection.get(readonlyUserId, { publishers: ['Image Comics'] }, (err, collection) => {
expect(err).toBeNull();
expect(collection.length).toBe(13);
expect(collection).toEqual(filteredIssuesCollection);
_.each(collection, (comic) => {
expect(comic).toBeAComicIssue();
});
done();
});
});
it('should provide a sorted list of comics from a users collection', function (done) {
lofcg.collection.get(readonlyUserId, { sort: 'desc' }, (err, collection) => {
expect(err).toBeNull();
expect(collection.length).toBe(86);
expect(collection).toEqual(sortedIssuesCollection);
_.each(collection, (comic) => {
expect(comic).toBeAComicIssue();
});
done();
});
});
});
};