before functional changes by codex
This commit is contained in:
149
test/helpers/factories.js
Normal file
149
test/helpers/factories.js
Normal file
@@ -0,0 +1,149 @@
|
||||
const EventEmitter = require('node:events');
|
||||
|
||||
function makeUiConfig(overrides = {}) {
|
||||
return {
|
||||
name: 'reactor-test',
|
||||
reactor_type: 'CSTR',
|
||||
volume: 100,
|
||||
length: 10,
|
||||
resolution_L: 5,
|
||||
alpha: 0,
|
||||
n_inlets: 1,
|
||||
kla: NaN,
|
||||
S_O_init: 0,
|
||||
S_I_init: 30,
|
||||
S_S_init: 100,
|
||||
S_NH_init: 16,
|
||||
S_N2_init: 0,
|
||||
S_NO_init: 0,
|
||||
S_HCO_init: 5,
|
||||
X_I_init: 25,
|
||||
X_S_init: 75,
|
||||
X_H_init: 30,
|
||||
X_STO_init: 0,
|
||||
X_A_init: 0.001,
|
||||
X_TS_init: 125,
|
||||
timeStep: 1,
|
||||
enableLog: false,
|
||||
logLevel: 'error',
|
||||
positionVsParent: 'atEquipment',
|
||||
...overrides,
|
||||
};
|
||||
}
|
||||
|
||||
function makeReactorConfig(overrides = {}) {
|
||||
const ui = makeUiConfig(overrides);
|
||||
return {
|
||||
general: {
|
||||
id: 'reactor-node-1',
|
||||
name: ui.name,
|
||||
unit: null,
|
||||
logging: {
|
||||
enabled: ui.enableLog,
|
||||
logLevel: ui.logLevel,
|
||||
},
|
||||
},
|
||||
functionality: {
|
||||
positionVsParent: ui.positionVsParent || 'atEquipment',
|
||||
softwareType: 'reactor',
|
||||
},
|
||||
reactor_type: ui.reactor_type,
|
||||
volume: Number(ui.volume),
|
||||
length: Number(ui.length),
|
||||
resolution_L: Number(ui.resolution_L),
|
||||
alpha: Number(ui.alpha),
|
||||
n_inlets: Number(ui.n_inlets),
|
||||
kla: Number(ui.kla),
|
||||
initialState: [
|
||||
Number(ui.S_O_init),
|
||||
Number(ui.S_I_init),
|
||||
Number(ui.S_S_init),
|
||||
Number(ui.S_NH_init),
|
||||
Number(ui.S_N2_init),
|
||||
Number(ui.S_NO_init),
|
||||
Number(ui.S_HCO_init),
|
||||
Number(ui.X_I_init),
|
||||
Number(ui.X_S_init),
|
||||
Number(ui.X_H_init),
|
||||
Number(ui.X_STO_init),
|
||||
Number(ui.X_A_init),
|
||||
Number(ui.X_TS_init),
|
||||
],
|
||||
timeStep: Number(ui.timeStep),
|
||||
};
|
||||
}
|
||||
|
||||
function makeNodeStub() {
|
||||
const handlers = {};
|
||||
const sent = [];
|
||||
const warns = [];
|
||||
const errors = [];
|
||||
const statuses = [];
|
||||
|
||||
return {
|
||||
id: 'reactor-node-1',
|
||||
source: null,
|
||||
on(event, cb) {
|
||||
handlers[event] = cb;
|
||||
},
|
||||
send(msg) {
|
||||
sent.push(msg);
|
||||
},
|
||||
warn(msg) {
|
||||
warns.push(msg);
|
||||
},
|
||||
error(msg) {
|
||||
errors.push(msg);
|
||||
},
|
||||
status(msg) {
|
||||
statuses.push(msg);
|
||||
},
|
||||
_handlers: handlers,
|
||||
_sent: sent,
|
||||
_warns: warns,
|
||||
_errors: errors,
|
||||
_statuses: statuses,
|
||||
};
|
||||
}
|
||||
|
||||
function makeREDStub(nodeMap = {}) {
|
||||
return {
|
||||
nodes: {
|
||||
getNode(id) {
|
||||
return nodeMap[id] || null;
|
||||
},
|
||||
createNode() {},
|
||||
registerType() {},
|
||||
},
|
||||
httpAdmin: {
|
||||
get() {},
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
function makeMeasurementChild({
|
||||
id = 'measurement-1',
|
||||
name = 'temp-sensor-1',
|
||||
distance = 'atEquipment',
|
||||
positionVsParent = 'atEquipment',
|
||||
type = 'temperature',
|
||||
} = {}) {
|
||||
return {
|
||||
config: {
|
||||
general: { id, name },
|
||||
functionality: { distance, positionVsParent, softwareType: 'measurement' },
|
||||
asset: { type },
|
||||
},
|
||||
measurements: {
|
||||
emitter: new EventEmitter(),
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
makeUiConfig,
|
||||
makeReactorConfig,
|
||||
makeNodeStub,
|
||||
makeREDStub,
|
||||
makeMeasurementChild,
|
||||
};
|
||||
Reference in New Issue
Block a user