Files
speckle-server/packages/server/test/helpers.js
T
Iain Sproat 444d2ca7dd Structured logging (attempt 2) (#1234)
* Revert "Revert "feat(structured logging): implements structured logging for backend (#1217)" (#1227)"

This reverts commit 63e6581162.

* Use pino-http instead of express pino logger
* Use correct reference to knex and do not instantiate HttpLogger prematurely
* Adds missing dependency for pino to webhook-service
* Do not instantiate middleware when passed to express
* Refactor to move logging into shared
* Copy shared packages into dockerfiles
* Build shared workspace in docker build-stage for fileimport & webhook
2022-12-05 14:49:52 +00:00

89 lines
2.2 KiB
JavaScript

/* istanbul ignore file */
// const { logger } = require('@/logging/logging')
const crypto = require('crypto')
function generateManyObjects(shitTon, noise) {
shitTon = shitTon || 10000
noise = noise || Math.random() * 100
const objs = []
const base = { name: 'base bastard 2', noise, __closure: {} }
// objs.push( base )
let k = 0
for (let i = 0; i < shitTon; i++) {
const 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,
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 }
}
function createManyObjects(num, noise) {
num = num || 10000
noise = noise || Math.random() * 100
const objs = []
const base = { name: 'base bastard 2', noise, __closure: {} }
objs.push(base)
for (let i = 0; i < num; i++) {
const 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) => {
// logger.debug( `\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 (res.error) throw new Error(`Failed GraphQL request: ${res.error.message}`)
if ('errors' in res.body)
throw new Error(`Failed GraphQL request: ${res.body.errors[0].message}`)
}
exports.noErrors = noErrors