Files
bitburner-src/test/jest/Script/RunningScript.test.ts

46 lines
2.3 KiB
TypeScript

import { RunningScript } from "../../../src/Script/RunningScript";
import { Reviver } from "../../../src/utils/GenericReviver";
import { Script } from "../../../src/Script/Script";
import { ScriptFilePath } from "../../../src/Paths/ScriptFilePath";
describe("Validate that a RunningScript can be saved and loaded", () => {
it("Save and Load", function () {
const hostname = "__proto__";
const filename = "test.js" as ScriptFilePath;
const args = ["arg1", "arg2"];
const ramUsage = 1.7;
const script = new Script(filename, "", hostname);
const runningScript = new RunningScript(script, ramUsage, args);
runningScript.dataMap.set(hostname, [1000, 2, 3, 4]);
const json = JSON.stringify(runningScript);
const revivedRunningScript = JSON.parse(json, Reviver) as RunningScript;
expect(revivedRunningScript).toBeInstanceOf(RunningScript);
expect(revivedRunningScript.filename).toEqual(filename);
expect(revivedRunningScript.server).toEqual(hostname);
expect(revivedRunningScript.args).toEqual(args);
expect(revivedRunningScript.ramUsage).toEqual(ramUsage);
expect(revivedRunningScript.dataMap.get(hostname)).toEqual([1000, 2, 3, 4]);
});
it("Loads a standard savefile shape", () => {
const data = ` {"ctor":"RunningScript","data":{"args":["arg1","arg2"],"dataMap":{"testserver":[1000,2,3,4]},"filename":"test.js","offlineExpGained":0,"offlineMoneyMade":0,"offlineRunningTime":0.01,"onlineExpGained":0,"onlineMoneyMade":0,"onlineRunningTime":0.01,"ramUsage":1.7,"server":"testserver","scriptKey":"test.js*[\\"arg1\\",\\"arg2\\"]","stdin":null,"tailOutputPipeConfig":null,"terminalOutputPipeConfig":null,"title":"test.js arg1 arg2","threads":1,"temporary":false}}`;
const hostname = "testserver";
const filename = "test.js" as ScriptFilePath;
const args = ["arg1", "arg2"];
const ramUsage = 1.7;
const revivedRunningScript = JSON.parse(data, Reviver) as RunningScript;
expect(revivedRunningScript).toBeInstanceOf(RunningScript);
expect(revivedRunningScript.filename).toEqual(filename);
expect(revivedRunningScript.server).toEqual(hostname);
expect(revivedRunningScript.ramUsage).toEqual(ramUsage);
expect(revivedRunningScript.args).toEqual(args);
expect(revivedRunningScript.dataMap.get(hostname)).toEqual([1000, 2, 3, 4]);
});
});