mirror of
https://github.com/clusterio/clusterio.git
synced 2026-11-12 07:04:52 +09:00
Fix broken regex, too tight time check, and lack of shell expansion on Windows causing test cases to fail or not run at all.
47 lines
1.7 KiB
JavaScript
47 lines
1.7 KiB
JavaScript
"use strict";
|
|
const assert = require("assert").strict;
|
|
const hrtime = process.hrtime.bigint;
|
|
|
|
const libHelpers = require("@clusterio/lib/helpers");
|
|
|
|
|
|
describe("lib/helpers", function() {
|
|
describe("basicType()", function() {
|
|
it("should return the expected values", function() {
|
|
assert.equal(libHelpers.basicType("s"), "string");
|
|
assert.equal(libHelpers.basicType(null), "null");
|
|
assert.equal(libHelpers.basicType(undefined), "undefined");
|
|
assert.equal(libHelpers.basicType([1, 2]), "array");
|
|
assert.equal(libHelpers.basicType(7), "number");
|
|
assert.equal(libHelpers.basicType({ a: 1 }), "object");
|
|
});
|
|
});
|
|
|
|
describe("wait", function() {
|
|
it("should wait the approximate amount of time given", async function() {
|
|
let startNs = hrtime();
|
|
await libHelpers.wait(100);
|
|
let duration = Number(hrtime() - startNs) / 1e6;
|
|
|
|
// On windows the time waited is normally up to 15 ms late with outliers in the 20ms range.
|
|
assert(duration > 90 && duration < 130, `duration (${duration}ms) not within (90-130)`);
|
|
});
|
|
});
|
|
|
|
describe("timeout", function() {
|
|
it("should return the result of an already resolved promise", async function() {
|
|
assert.equal(await libHelpers.timeout(Promise.resolve("value"), 10, "timeout"), "value");
|
|
});
|
|
it("should return the result of the promise if received before timeout", async function() {
|
|
assert.equal(await libHelpers.timeout(
|
|
(async () => { await libHelpers.wait(10); return "value"; })(), 20, "timeout"
|
|
), "value");
|
|
});
|
|
it("should return the timeoutResult if not received before timeout", async function() {
|
|
assert.equal(await libHelpers.timeout(
|
|
(async () => { await libHelpers.wait(20); return "value"; })(), 10, "timeout"
|
|
), "timeout");
|
|
});
|
|
});
|
|
});
|