Files
speckle-server/packages/server/test/helpers.js
T
Gergő Jedlicska 68a4a95d90 refactor(server): rework test hooks
drop db migration before and after hooks, add helpers and root hooks

fix #531
2022-02-05 15:05:17 +01:00

85 lines
2.1 KiB
JavaScript

/* 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