mirror of
https://github.com/bitburner-official/bitburner-src.git
synced 2024-12-18 20:25:45 +01:00
64 lines
2.2 KiB
TypeScript
64 lines
2.2 KiB
TypeScript
import { checkForMessagesToSend } from "../../../src/Message/MessageHelpers";
|
|
import * as dialogBoxCreate from "../../../src/ui/React/DialogBox";
|
|
import { Player } from "@player";
|
|
import "../../../src/ui/GameRoot";
|
|
import { AugmentationName } from "@enums";
|
|
import { AddToAllServers } from "../../../src/Server/AllServers";
|
|
import { Server } from "../../../src/Server/Server";
|
|
import { installAugmentations } from "../../../src/Augmentation/AugmentationHelpers";
|
|
import { initSourceFiles } from "../../../src/SourceFile/SourceFiles";
|
|
|
|
jest.mock("../../../src/ui/GameRoot", () => ({
|
|
Router: {
|
|
page: () => ({}),
|
|
toPage: () => ({}),
|
|
},
|
|
}));
|
|
|
|
jest.mock("../../../src/ui/React/DialogBox", () => ({
|
|
dialogBoxCreate: jest.fn(),
|
|
}));
|
|
|
|
AddToAllServers(new Server({ hostname: "home" }));
|
|
|
|
describe("MessageHelpers tests", () => {
|
|
afterEach(() => {
|
|
jest.clearAllMocks();
|
|
});
|
|
|
|
it("Should repeatedly send the Icarus message on the player's first bitnode", () => {
|
|
Player.queueAugmentation(AugmentationName.TheRedPill);
|
|
installAugmentations();
|
|
Player.gainHackingExp(2 ** 200);
|
|
|
|
const showMessageSpy = jest.spyOn(dialogBoxCreate, "dialogBoxCreate");
|
|
|
|
checkForMessagesToSend();
|
|
checkForMessagesToSend();
|
|
|
|
// Called once for installing augmentations, and once for each
|
|
// checkForMessagesToSend() sending an Icarus message
|
|
expect(showMessageSpy).toHaveBeenCalledTimes(3);
|
|
});
|
|
|
|
it("Should not repeatedly send the Icarus message after the player's first bitnode completion", () => {
|
|
initSourceFiles();
|
|
Player.sourceFiles.set(1, 1);
|
|
jest.spyOn(console, "warn").mockImplementation(() => {}); // Prevent test spam
|
|
Player.queueAugmentation(AugmentationName.TheRedPill);
|
|
installAugmentations();
|
|
Player.gainHackingExp(2 ** 200);
|
|
|
|
const showMessageSpy = jest.spyOn(dialogBoxCreate, "dialogBoxCreate");
|
|
|
|
checkForMessagesToSend();
|
|
checkForMessagesToSend();
|
|
checkForMessagesToSend();
|
|
checkForMessagesToSend();
|
|
|
|
// Called once for installing augmentations, and only once for any number of
|
|
// checkForMessagesToSend() ( sending an Icarus message only the first time)
|
|
expect(showMessageSpy).toHaveBeenCalledTimes(2);
|
|
});
|
|
});
|