mirror of
https://github.com/clusterio/clusterio.git
synced 2026-11-11 15:04:52 +09:00
Move slowTest and externalTest to test/common.js
These are used outside of the integration tests, but including the integration index file causes the very slow setup of the contorller and host. Avoid the integration setup costs when running commands such as `pnpm mocha test/lib` by moving these utility functions to the common test functions.
This commit is contained in:
1 parent
ea1cb67502
commit
92d2662078
13 files changed
+38
-34
No files matched your search
@@ -33,3 +33,25 @@ export function testRoundTripJsonSerialisable(Class, tests) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Mark that this test takes a lot of time, or depends on a test that takes a
|
||||
* lot of time.
|
||||
*/
|
||||
export function slowTest(test) {
|
||||
if (process.env.FAST_TEST) {
|
||||
test.skip();
|
||||
}
|
||||
test.timeout(30000);
|
||||
}
|
||||
|
||||
/**
|
||||
* Mark that this test depends on an external API and may be slow or flaky.
|
||||
*/
|
||||
export function externalTest(test) {
|
||||
if (process.env.NO_EXTERNAL_TEST) {
|
||||
test.skip();
|
||||
}
|
||||
test.timeout(60000);
|
||||
}
|
||||
+1
-1
@@ -6,7 +6,7 @@ import path from "node:path";
|
||||
import * as hostServer from "@clusterio/host/dist/node/src/server.js";
|
||||
import { Link, wait } from "@clusterio/lib";
|
||||
import { testLines } from "../lib/factorio/lines.js";
|
||||
import { slowTest, externalTest } from "../integration/index.js";
|
||||
import { slowTest, externalTest } from "../common.js";
|
||||
import "../setup_logging.js";
|
||||
|
||||
|
||||
|
||||
@@ -10,11 +10,12 @@ import * as libBuildMod from "@clusterio/lib/build_mod.js";
|
||||
|
||||
import * as testStrings from "../lib/factorio/test_strings.js";
|
||||
import {
|
||||
TestControl, TestControlConnector, url, controlToken, slowTest,
|
||||
TestControl, TestControlConnector, url, controlToken,
|
||||
execCtl, execCtlProcess, execController, execHost, sendRcon, getControl,
|
||||
spawnNode, instancesDir, factorioDir, databaseDir, controllerConfigPath,
|
||||
requiresFactorio, hasFactorio,
|
||||
} from "./index.js";
|
||||
import { slowTest } from "../common.js";
|
||||
import { ControllerEcho, HostEchoReceived } from "../file/test_plugin/messages.js";
|
||||
|
||||
|
||||
|
||||
@@ -119,25 +119,6 @@ export class TestHostConnector extends lib.WebSocketClientConnector {
|
||||
}
|
||||
}
|
||||
|
||||
// Mark that this test takes a lot of time, or depends on a test that takes a lot of time.
|
||||
export function slowTest(test) {
|
||||
|
||||
if (process.env.FAST_TEST) {
|
||||
test.skip();
|
||||
}
|
||||
|
||||
test.timeout(30000);
|
||||
}
|
||||
|
||||
// Mark that this test depends on an external API and may be slow or flaky.
|
||||
export function externalTest(test) {
|
||||
if (process.env.NO_EXTERNAL_TEST) {
|
||||
test.skip();
|
||||
}
|
||||
|
||||
test.timeout(60000);
|
||||
}
|
||||
|
||||
// Mark that this test or suite of tests requires a factorio install to run.
|
||||
export function requiresFactorio(testOrSuite) {
|
||||
if (testOrSuite.skip) {
|
||||
|
||||
@@ -3,9 +3,9 @@ import assert from "node:assert/strict";
|
||||
import * as lib from "@clusterio/lib";
|
||||
import fs from "node:fs/promises";
|
||||
|
||||
import { testMatrix } from "../common.js";
|
||||
import { slowTest, testMatrix } from "../common.js";
|
||||
import {
|
||||
slowTest, exec, execCtl, execCtlProcess, sendRcon, getControl,
|
||||
execCtl, execCtlProcess, sendRcon, getControl,
|
||||
requiresFactorio, hasFactorio, instancesDir,
|
||||
} from "./index.js";
|
||||
|
||||
|
||||
@@ -3,9 +3,10 @@ import events from "node:events";
|
||||
import jwt from "jsonwebtoken";
|
||||
|
||||
import {
|
||||
TestControlConnector, TestHostConnector, TestControl, get, exec, url, controlToken, slowTest,
|
||||
TestControlConnector, TestHostConnector, TestControl, url, controlToken,
|
||||
} from "./index.js";
|
||||
import { ConnectionClosed, ProtocolError, PolicyViolation, AuthenticationFailed } from "@clusterio/lib";
|
||||
import { slowTest } from "../common.js";
|
||||
|
||||
let tokenHost = jwt.sign({ aud: "host", host: 0 }, Buffer.from("TestSecretDoNotUse", "base64"));
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@ import path from "node:path";
|
||||
import { patch, SaveModule } from "@clusterio/host/dist/node/src/patch.js";
|
||||
import * as lib from "@clusterio/lib";
|
||||
|
||||
import { slowTest } from "./index.js";
|
||||
import { slowTest } from "../common.js";
|
||||
|
||||
|
||||
// The server integration test is required to run before this one
|
||||
|
||||
@@ -8,7 +8,8 @@ import { InstanceManager } from "@clusterio/controller";
|
||||
import { FactorioServer, _getFactorioVersion } from "@clusterio/host/dist/node/src/server.js";
|
||||
import { logger } from "@clusterio/lib";
|
||||
|
||||
import { slowTest, factorioDir, requiresFactorio } from "./index.js";
|
||||
import { factorioDir, requiresFactorio } from "./index.js";
|
||||
import { slowTest } from "../common.js";
|
||||
|
||||
|
||||
describe("Integration of host/src/server", function() {
|
||||
|
||||
@@ -8,7 +8,7 @@ import JSZip from "jszip"; // Added for creating mock zips
|
||||
const nativeFetch = global.fetch;
|
||||
|
||||
import { ModStore, ModInfo, ModVersionEquality } from "@clusterio/lib"; // Adjust path based on compiled output
|
||||
import { externalTest } from "../integration/index.js";
|
||||
import { externalTest } from "../common.js";
|
||||
import "../setup_logging.js";
|
||||
|
||||
const MODS_DIR = path.join("temp", "test", "mod_store", "mods");
|
||||
|
||||
+1
-1
@@ -2,7 +2,7 @@ import assert from "node:assert/strict";
|
||||
import { readFile } from "node:fs/promises";
|
||||
|
||||
import { fetchFactorioVersions } from "@clusterio/lib";
|
||||
import { slowTest, externalTest } from "../../integration/index.js";
|
||||
import { slowTest, externalTest } from "../../common.js";
|
||||
|
||||
describe("FactorioVersions", function() {
|
||||
describe("fetchFactorioVersions", function() {
|
||||
|
||||
+1
-1
@@ -1,7 +1,7 @@
|
||||
import assert from "node:assert/strict";
|
||||
|
||||
import { fetchLatestReleases, resolveReleaseChannel } from "@clusterio/lib";
|
||||
import { slowTest, externalTest } from "../../integration/index.js";
|
||||
import { slowTest, externalTest } from "../../common.js";
|
||||
|
||||
describe("LatestReleases", function() {
|
||||
describe("fetchLatestReleases", function() {
|
||||
|
||||
@@ -3,7 +3,7 @@ import fs from "node:fs/promises";
|
||||
import path from "node:path";
|
||||
|
||||
import * as lib from "@clusterio/lib";
|
||||
import { slowTest } from "../integration/index.js";
|
||||
import { slowTest } from "../common.js";
|
||||
import "../setup_logging.js";
|
||||
|
||||
|
||||
|
||||
@@ -2,11 +2,9 @@ import assert from "node:assert/strict";
|
||||
|
||||
import * as lib from "@clusterio/lib";
|
||||
import { ModDependencyResolveRequest, ModDependency, ModInfo } from "@clusterio/lib";
|
||||
|
||||
import { testMatrix, testRoundTripJsonSerialisable } from "../common.js";
|
||||
|
||||
import { Controller, ControlConnection } from "@clusterio/controller";
|
||||
import { externalTest } from "../integration/index.js";
|
||||
|
||||
import { externalTest, testMatrix, testRoundTripJsonSerialisable } from "../common.js";
|
||||
import "../setup_logging.js";
|
||||
|
||||
describe("messages/mod", function() {
|
||||
|
||||
Reference in new issue
Block a user