2021-08-09 10:22:40 +02:00

68 lines
1.8 KiB
JavaScript

'use strict';
const dataLoaders = require('../data-loaders');
describe('dataloader', () => {
describe('serializeKey', () => {
test('Serializes objects to json', () => {
expect(dataLoaders.serializeKey(1928)).toBe(1928);
expect(dataLoaders.serializeKey('test')).toBe('test');
expect(dataLoaders.serializeKey([1, 2, 3])).toBe('[1,2,3]');
expect(dataLoaders.serializeKey({ foo: 'bar' })).toBe('{"foo":"bar"}');
expect(dataLoaders.serializeKey({ foo: 'bar', nested: { bar: 'foo' } })).toBe(
'{"foo":"bar","nested":{"bar":"foo"}}'
);
});
});
describe('makeQuery', () => {
test('makeQuery single calls findOne', async () => {
const uid = 'uid';
const findOne = jest.fn(() => ({ id: 1 }));
const filters = { _limit: 5 };
global.strapi = {
query() {
return { findOne };
},
};
await dataLoaders.makeQuery(uid, { single: true, filters });
expect(findOne).toHaveBeenCalledWith(filters, []);
});
test('makeQuery calls find', async () => {
const uid = 'uid';
const find = jest.fn(() => [{ id: 1 }]);
const filters = { limit: 5, sort: 'field' };
global.strapi = {
query() {
return { find };
},
};
await dataLoaders.makeQuery(uid, { filters });
expect(find).toHaveBeenCalledWith(filters, []);
});
test('makeQuery disables populate to optimize fetching a bit', async () => {
const uid = 'uid';
const find = jest.fn(() => [{ id: 1 }]);
const filters = { _limit: 5 };
global.strapi = {
query() {
return { find };
},
};
await dataLoaders.makeQuery(uid, { filters });
expect(find).toHaveBeenCalledWith(filters, []);
});
});
});