ichigoo
Version:
Static site generator with React and GraphQL
228 lines (225 loc) • 4.78 kB
JavaScript
"use strict";
var _all = _interopRequireDefault(require("./all"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
var data = [{
id: 1,
title: 'Lorem Ipsum',
user_id: 123,
views: 254
}, {
id: 2,
title: 'Ut enim ad minim',
user_id: 456,
views: 65
}, {
id: 3,
title: 'Sic Dolor amet',
user_id: 123,
views: 76
}];
test('returns empty array on empty datastore', function () {
return expect((0, _all["default"])()(null, {})).toEqual([]);
});
test('returns all entities by default', function () {
return expect((0, _all["default"])(data)(null, {})).toEqual([{
id: 1,
title: 'Lorem Ipsum',
user_id: 123,
views: 254
}, {
id: 2,
title: 'Ut enim ad minim',
user_id: 456,
views: 65
}, {
id: 3,
title: 'Sic Dolor amet',
user_id: 123,
views: 76
}]);
});
describe('pagination', function () {
test('does not paginate when page is not set', function () {
return expect((0, _all["default"])(data)(null, {
perPage: 1
})).toEqual([{
id: 1,
title: 'Lorem Ipsum',
user_id: 123,
views: 254
}, {
id: 2,
title: 'Ut enim ad minim',
user_id: 456,
views: 65
}, {
id: 3,
title: 'Sic Dolor amet',
user_id: 123,
views: 76
}]);
});
test('uses page to set page number', function () {
expect((0, _all["default"])(data)(null, {
page: 0
})).toEqual([{
id: 1,
title: 'Lorem Ipsum',
user_id: 123,
views: 254
}, {
id: 2,
title: 'Ut enim ad minim',
user_id: 456,
views: 65
}, {
id: 3,
title: 'Sic Dolor amet',
user_id: 123,
views: 76
}]);
expect((0, _all["default"])(data)(null, {
page: 1
})).toEqual([]);
});
test('uses perPage to set number of results per page', function () {
expect((0, _all["default"])(data)(null, {
page: 0,
perPage: 1
})).toEqual([{
id: 1,
title: 'Lorem Ipsum',
user_id: 123,
views: 254
}]);
expect((0, _all["default"])(data)(null, {
page: 1,
perPage: 1
})).toEqual([{
id: 2,
title: 'Ut enim ad minim',
user_id: 456,
views: 65
}]);
expect((0, _all["default"])(data)(null, {
page: 2,
perPage: 1
})).toEqual([{
id: 3,
title: 'Sic Dolor amet',
user_id: 123,
views: 76
}]);
expect((0, _all["default"])(data)(null, {
page: 3,
perPage: 1
})).toEqual([]);
expect((0, _all["default"])(data)(null, {
page: 0,
perPage: 2
})).toEqual([{
id: 1,
title: 'Lorem Ipsum',
user_id: 123,
views: 254
}, {
id: 2,
title: 'Ut enim ad minim',
user_id: 456,
views: 65
}]);
expect((0, _all["default"])(data)(null, {
page: 1,
perPage: 2
})).toEqual([{
id: 3,
title: 'Sic Dolor amet',
user_id: 123,
views: 76
}]);
expect((0, _all["default"])(data)(null, {
page: 2,
perPage: 2
})).toEqual([]);
});
});
describe('sort', function () {
test('sorts data using sortField for the field', function () {
expect((0, _all["default"])(data)(null, {
sortField: 'views'
})).toEqual([{
id: 2,
title: 'Ut enim ad minim',
user_id: 456,
views: 65
}, {
id: 3,
title: 'Sic Dolor amet',
user_id: 123,
views: 76
}, {
id: 1,
title: 'Lorem Ipsum',
user_id: 123,
views: 254
}]);
expect((0, _all["default"])(data)(null, {
sortField: 'title'
})).toEqual([{
id: 1,
title: 'Lorem Ipsum',
user_id: 123,
views: 254
}, {
id: 3,
title: 'Sic Dolor amet',
user_id: 123,
views: 76
}, {
id: 2,
title: 'Ut enim ad minim',
user_id: 456,
views: 65
}]);
});
test('sorts data using sortOrder for the sort direction', function () {
expect((0, _all["default"])(data)(null, {
sortField: 'views',
sortOrder: 'asc'
})).toEqual([{
id: 2,
title: 'Ut enim ad minim',
user_id: 456,
views: 65
}, {
id: 3,
title: 'Sic Dolor amet',
user_id: 123,
views: 76
}, {
id: 1,
title: 'Lorem Ipsum',
user_id: 123,
views: 254
}]);
expect((0, _all["default"])(data)(null, {
sortField: 'views',
sortOrder: 'desc'
})).toEqual([{
id: 1,
title: 'Lorem Ipsum',
user_id: 123,
views: 254
}, {
id: 3,
title: 'Sic Dolor amet',
user_id: 123,
views: 76
}, {
id: 2,
title: 'Ut enim ad minim',
user_id: 456,
views: 65
}]);
});
});