diff --git a/packages/lib-js-core/src/data.ts b/packages/lib-js-core/src/data.ts index 6fb83c8f..fb26d24f 100644 --- a/packages/lib-js-core/src/data.ts +++ b/packages/lib-js-core/src/data.ts @@ -51,6 +51,9 @@ export class DataClass uniqueIds.includes(id) ? false : uniqueIds.push(id) ) + if (this.query.random_order) { + return results.sort(() => Math.random() - 0.5) + } return results } @@ -217,6 +220,10 @@ export class DataClass { .list() .should.become([{id: 1}, {id: 2}]) }) + + it('should return random ordered list of objects', async () => { + const objects = [...Array(20).keys()].map((key) => { + return {id: key} + }) + + api + .get(`/v3/instances/${instanceName}/classes/users/objects/`) + .query({page_size: 500, random_order: true}) // eslint-disable-line camelcase + .reply(200, {objects}) + + return data.users + .inRandomOrder() + .list() + .then((items: any) => { + should(items) + .be.Array() + .not.be.eql(objects) + }) + }) }) describe('#count()', () => {