Files
factorio-clusterio/test/integration/patch.js
T
Hornwitser 8586dfb95f Fix capitalization of constructors
Enforce new-cap rule and fix capitalization and mistakes related to
constructors.
2020-10-23 21:22:45 +02:00

48 lines
1.4 KiB
JavaScript

"use strict";
const assert = require("assert").strict;
const fs = require("fs-extra");
const JSZip = require("jszip");
const path = require("path");
const libFactorio = require("@clusterio/lib/factorio");
const { slowTest } = require("./index");
// The server integration test is required to run before this one
require("./server");
describe("Integration of lib/factorio/patch", function() {
describe("patch()", function() {
let savePath = path.join("temp", "test", "integration", "saves", "test.zip");
it("should patch a freeplay game", async function() {
slowTest(this);
await libFactorio.patch(savePath, [{
name: "test",
version: "1.0.0",
dependencies: {},
path: "test/file/modules/test",
load: [],
require: [],
}, {
name: "subdir",
version: "1.0.0",
dependencies: {},
path: "test/file/modules/subdir",
load: [],
require: [],
}]);
let zip = await JSZip.loadAsync(await fs.readFile(savePath));
assert.equal(await zip.file("test/modules/test/test.lua").async("string"), "-- test\n");
assert.equal(await zip.file("test/modules/subdir/dir/test.lua").async("string"), "-- test\n");
});
it("should remove old modules in a save", async function() {
slowTest(this);
await libFactorio.patch(savePath, []);
let zip = await JSZip.loadAsync(await fs.readFile(savePath));
assert.equal(zip.file("test/modules/test/test.lua"), null);
});
});
});