/* istanbul ignore file */ const crypto = require( 'crypto' ) function generateManyObjects( shitTon, noise ) { shitTon = shitTon || 10000 noise = noise || Math.random( ) * 100 let objs = [ ] let base = { name: 'base bastard 2', noise: noise, __closure: {} } // objs.push( base ) let k = 0 for ( let i = 0; i < shitTon; i++ ) { let baby = { name: `mr. ${i}`, nest: { duck: i % 2 === 0, mallard: 'falsey', arr: [ i + 42, i, i ] }, test: { value: i, secondValue: 'mallard ' + i % 10 }, similar: k, even: i % 2 === 0, objArr: [ { a: i }, { b: i * i }, { c: true } ], noise: noise, sortValueA: i, sortValueB: i * 0.42 * i } if ( i % 3 === 0 ) k++ getAnIdForThisOnePlease( baby ) base.__closure[ baby.id ] = 1 objs.push( baby ) } getAnIdForThisOnePlease( base ) return { commit: base, objs: objs } } function createManyObjects( num, noise ) { num = num || 10000 noise = noise || Math.random( ) * 100 let objs = [ ] let base = { name: 'base bastard 2', noise: noise, __closure: {} } objs.push( base ) for ( let i = 0; i < num; i++ ) { let baby = { name: `mr. ${i}`, nest: { duck: i % 2 === 0, mallard: 'falsey', arr: [ i + 42, i, i ] } } getAnIdForThisOnePlease( baby ) base.__closure[ baby.id ] = 1 objs.push( baby ) } getAnIdForThisOnePlease( base ) return objs } exports.createManyObjects = createManyObjects function getAnIdForThisOnePlease( obj ) { obj.id = obj.id || crypto.createHash( 'md5' ).update( JSON.stringify( obj ) ).digest( 'hex' ) } exports.generateManyObjects = generateManyObjects exports.getAnIdForThisOnePlease = getAnIdForThisOnePlease exports.sleep = ( ms ) => { // console.log( `\t Sleeping ${ms}ms ` ) return new Promise( ( resolve ) => { setTimeout( resolve, ms ) } ) } /** * Checks the response body for errors. To be used in expect assertions. * Will throw an error if 'errors' exist. * @param {*} res */ function noErrors( res ) { if ( 'errors' in res.body ) throw new Error( `Failed GraphQL request: ${res.body.errors[ 0 ].message}` ) } exports.noErrors = noErrors