mirror of
https://github.com/node-red/node-red.git
synced 2023-10-10 13:36:53 +02:00
Add workaround for timers triggering too early in test
This commit is contained in:
parent
0c2ab13c48
commit
34e8d2b051
@ -1719,6 +1719,9 @@ describe('function node', function() {
|
|||||||
|
|
||||||
it('should delay handling messages until init completes', function(done) {
|
it('should delay handling messages until init completes', function(done) {
|
||||||
const timeout_ms = 200;
|
const timeout_ms = 200;
|
||||||
|
// Since helper.load uses process.nextTick timers might occasionally finish
|
||||||
|
// a couple of milliseconds too early, so give some leeway to the check.
|
||||||
|
const timeout_check_margin = 5;
|
||||||
var flow = [{id:"n1",type:"function",wires:[["n2"]],initialize: `
|
var flow = [{id:"n1",type:"function",wires:[["n2"]],initialize: `
|
||||||
return new Promise((resolve,reject) => {
|
return new Promise((resolve,reject) => {
|
||||||
setTimeout(resolve, ${timeout_ms});
|
setTimeout(resolve, ${timeout_ms});
|
||||||
@ -1735,9 +1738,9 @@ describe('function node', function() {
|
|||||||
receivedMsgs.push(msg)
|
receivedMsgs.push(msg)
|
||||||
if (receivedMsgs.length === 5) {
|
if (receivedMsgs.length === 5) {
|
||||||
let deltas = receivedMsgs.map(msg => msg.delta);
|
let deltas = receivedMsgs.map(msg => msg.delta);
|
||||||
var errors = deltas.filter(delta => delta < timeout_ms)
|
var errors = deltas.filter(delta => delta < (timeout_ms - timeout_check_margin))
|
||||||
if (errors.length > 0) {
|
if (errors.length > 0) {
|
||||||
done(new Error(`Message received before init completed - delta values ${JSON.stringify(deltas)} expected to be > ${timeout_ms}`))
|
done(new Error(`Message received before init completed - delta values ${JSON.stringify(deltas)} expected to be > ${timeout_ms - timeout_check_margin}`))
|
||||||
} else {
|
} else {
|
||||||
done();
|
done();
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user