UNPKG

ichigoo

Version:

Static site generator with React and GraphQL

228 lines (225 loc) 4.78 kB
"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 }]); }); });