mirror of
https://github.com/clusterio/clusterio.git
synced 2026-11-12 07:04:52 +09:00
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.
67 lines
2.2 KiB
JavaScript
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);
|
|
});
|