const assert = require("assert"); const fs = require("fs"); const path = require("path"); const factorioServer = require("./index.js"); describe("factorioServer/index.js", ()=>{ it("is a class (or at least a function)", ()=>{ assert.equal(typeof factorioServer, "function"); }); describe(".deleteInstance()", ()=>{ it("deletes an instance, defaulting to the classes instanceDirectory", async () => { let server = new factorioServer({ instanceDirectory: path.resolve(__dirname, "_testData_deleteInstance"), instanceName: "Unit testing instance", }); await server.initialize(); await server.deleteInstance(); assert.equal(await server.isValidInstance(), false); return true; }); }); describe(".isValidInstance()", ()=>{ it("tells us whether an instance exists or not", async () => { let server = new factorioServer({ instanceDirectory: path.resolve(__dirname, "_testData_isValidInstance"), instanceName: "Unit testing instance", }); await server.deleteInstance(); let status = await server.isValidInstance(); assert.equal(status, false); let x = await server.initialize(); // creates our instance let status2 = await server.isValidInstance(); assert.equal(status2, true); // clean up folder await server.deleteInstance(); return true; }); }); describe(".initialize()", ()=>{ it("server.initialize creates an instance", done => { let server = new factorioServer({ instanceDirectory: path.resolve(__dirname, "_testData_initialize"), instanceName: "Unit testing instance", }); server.initialize().then(()=>{ return server.deleteInstance(); }).then(() => { done(); }).catch(e => console.log(e)); }); }); });