Files
factorio-clusterio/test/integration/create.js
T
Hornwitser 2e48b728dd Remove fs-extra and klaw (#882)
These packages are obsoleted by the promises API to the built-in Node fs
module.  The fs-extra package is also causing problems with broken APIs
that don't behave the same as Node's fs module, and throwing errors
without code properties on them.
2026-04-09 22:53:13 +02:00

67 lines
2.2 KiB
JavaScript

"use strict";
const assert = require("assert").strict;
const fs = require("node:fs/promises");
const jwt = require("jsonwebtoken");
const path = require("path");
const events = require("events");
const child_process = require("child_process");
const util = require("util");
const cwd = path.join("temp", "test_integration");
async function exec(command, options = {}) {
// Uncomment to show commands run in tests
// console.log(command);
options = { cwd, ...options };
return await util.promisify(child_process.exec)(command, options);
}
describe("Integration of create tool", function () {
beforeEach(async function () {
await fs.mkdir(cwd, { recursive: true });
});
afterEach(async function () {
await fs.rm(cwd, { recursive: true, maxRetries: 10 });
});
it("should create a new standalone installation", async function () {
this.skip();
await exec([
"node ../../packages/create",
"--mode standalone",
"--admin Danielv123",
"--http-port 8099",
"--host-name localhost",
"--public-address localhost",
"--factorio-dir test/factorio",
"--plugins --",
].join(" "));
// Check that the generated config is correct
const controllerConfig = JSON.parse(await fs.readFile(path.join(cwd, "config-controller.json")));
assert.equal(controllerConfig["controller.http_port"], 8099);
const hostConfig = JSON.parse(await fs.readFile(path.join(cwd, "config-host.json")));
assert.equal(hostConfig["host.name"], "local");
assert.equal(hostConfig["host.public_address"], "localhost");
assert.equal(hostConfig["host.factorio_directory"], "test/factorio");
assert.equal(hostConfig["host.controller_url"], "http://localhost:8099/");
}).timeout(1200000);
it("should create a new controller installation", async function () {
this.skip();
await exec([
"node ../../packages/create",
"--mode controller",
"--admin Danielv123",
"--http-port 8099",
"--public-address localhost",
"--plugins --",
].join(" "));
// Check that the generated config is correct
const controllerConfig = JSON.parse(await fs.readFile(path.join(cwd, "config-controller.json")));
assert.equal(controllerConfig["controller.http_port"], 8099);
await assert.rejects(fs.access(path.join(cwd, "config-host.json")));
}).timeout(60000);
});