0
0
mirror of https://github.com/sp-tarkov/server.git synced 2025-02-13 02:10:44 -05:00

Various unit test fixes

This commit is contained in:
Chomp 2024-12-06 17:08:48 +00:00
parent e7f5db9f0a
commit fdca5d39f6
2 changed files with 42 additions and 41 deletions

View File

@ -1,14 +1,14 @@
import "reflect-metadata"; import "reflect-metadata";
import { BotGenerator } from "@spt/generators/BotGenerator";
import { IPmcData } from "@spt/models/eft/common/IPmcData"; import { IPmcData } from "@spt/models/eft/common/IPmcData";
import { BotNameService } from "@spt/services/BotNameService";
import { container } from "tsyringe"; import { container } from "tsyringe";
import { afterEach, beforeEach, describe, expect, it, vi } from "vitest"; import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
describe("BotGenerator", () => { describe("BotGenerator", () => {
let botGenerator: any; let botNameService: any;
beforeEach(() => { beforeEach(() => {
botGenerator = container.resolve<BotGenerator>("BotGenerator"); botNameService = container.resolve<BotNameService>("BotNameService");
}); });
afterEach(() => { afterEach(() => {
@ -52,45 +52,45 @@ describe("BotGenerator", () => {
describe("generateUniqueBotNickname", () => { describe("generateUniqueBotNickname", () => {
it("should choose random firstname for non player scav assault bot", () => { it("should choose random firstname for non player scav assault bot", () => {
const botJsonTemplate = { firstName: ["one", "two"], lastName: [] }; const botJsonTemplate = { firstName: ["one", "two"], lastName: [] };
const botGenerationDetails = { isPlayerScav: false, isPmc: true, allPmcsHaveSameNameAsPlayer: false }; const botGenerationDetails = { isPlayerScav: false, isPmc: false, allPmcsHaveSameNameAsPlayer: false };
const botRole = "assault"; const botRole = "assault";
botGenerator.botConfig.chanceAssaultScavHasPlayerScavName = 0; botNameService.botConfig.chanceAssaultScavHasPlayerScavName = 0;
const mockPlayerProfile = { Info: { Nickname: "Player Nickname", Level: 1 } }; const mockPlayerProfile = { Info: { Nickname: "Player Nickname", Level: 1 } };
vi.spyOn(botGenerator.profileHelper, "getPmcProfile").mockReturnValue(<IPmcData>mockPlayerProfile); vi.spyOn(botNameService.profileHelper, "getPmcProfile").mockReturnValue(<IPmcData>mockPlayerProfile);
const result = botGenerator.generateUniqueBotNickname(botJsonTemplate, botGenerationDetails, botRole); const result = botNameService.generateUniqueBotNickname(botJsonTemplate, botGenerationDetails, botRole);
expect(result).toMatch(/(one|two)/); expect(result).toMatch(/(one|two)/);
}); });
it("should choose random lastname for non player scav assault bot", () => { it("should choose random lastname for non player scav assault bot", () => {
const botJsonTemplate = { firstName: [], lastName: [["one", "two"]] }; const botJsonTemplate = { firstName: [], lastName: [["one", "two"]] };
const botGenerationDetails = { isPlayerScav: false, isPmc: true, allPmcsHaveSameNameAsPlayer: false }; const botGenerationDetails = { isPlayerScav: false, isPmc: false, allPmcsHaveSameNameAsPlayer: false };
const botRole = "assault"; const botRole = "assault";
botGenerator.botConfig.chanceAssaultScavHasPlayerScavName = 0; botNameService.botConfig.chanceAssaultScavHasPlayerScavName = 0;
const mockPlayerProfile = { Info: { Nickname: "Player Nickname", Level: 1 } }; const mockPlayerProfile = { Info: { Nickname: "Player Nickname", Level: 1 } };
vi.spyOn(botGenerator.profileHelper, "getPmcProfile").mockReturnValue(<IPmcData>mockPlayerProfile); vi.spyOn(botNameService.profileHelper, "getPmcProfile").mockReturnValue(<IPmcData>mockPlayerProfile);
const result = botGenerator.generateUniqueBotNickname(botJsonTemplate, botGenerationDetails, botRole); const result = botNameService.generateUniqueBotNickname(botJsonTemplate, botGenerationDetails, botRole);
expect(result).toMatch(/(one|two)/); expect(result).toMatch(/(one|two)/);
}); });
it("should choose random firstname and lastname for non player scav assault bot", () => { it("should choose random firstname and lastname for non player scav assault bot", () => {
const botJsonTemplate = { firstName: ["first-one", "first-two"], lastName: [["last-one", "last-two"]] }; const botJsonTemplate = { firstName: ["first-one", "first-two"], lastName: [["last-one", "last-two"]] };
const botGenerationDetails = { isPlayerScav: false, isPmc: true, allPmcsHaveSameNameAsPlayer: false }; const botGenerationDetails = { isPlayerScav: false, isPmc: false, allPmcsHaveSameNameAsPlayer: false };
const botRole = "assault"; const botRole = "assault";
botGenerator.botConfig.chanceAssaultScavHasPlayerScavName = 0; botNameService.botConfig.chanceAssaultScavHasPlayerScavName = 0;
const mockPlayerProfile = { Info: { Nickname: "Player Nickname", Level: 1 } }; const mockPlayerProfile = { Info: { Nickname: "Player Nickname", Level: 1 } };
vi.spyOn(botGenerator.profileHelper, "getPmcProfile").mockReturnValue(<IPmcData>mockPlayerProfile); vi.spyOn(botNameService.profileHelper, "getPmcProfile").mockReturnValue(<IPmcData>mockPlayerProfile);
const result = botGenerator.generateUniqueBotNickname(botJsonTemplate, botGenerationDetails, botRole); const result = botNameService.generateUniqueBotNickname(botJsonTemplate, botGenerationDetails, botRole);
expect(result).toMatch(/first-(one|two) last-(one|two)/); expect(result).toMatch(/first-(one|two) last-(one|two)/);
}); });
@ -100,12 +100,12 @@ describe("BotGenerator", () => {
const botGenerationDetails = { isPlayerScav: true, isPmc: false, allPmcsHaveSameNameAsPlayer: false }; const botGenerationDetails = { isPlayerScav: true, isPmc: false, allPmcsHaveSameNameAsPlayer: false };
const botRole = "assault"; const botRole = "assault";
botGenerator.botConfig.chanceAssaultScavHasPlayerScavName = 0; botNameService.botConfig.chanceAssaultScavHasPlayerScavName = 0;
const mockPlayerProfile = { Info: { Nickname: "Player Nickname", Level: 1 } }; const mockPlayerProfile = { Info: { Nickname: "Player Nickname", Level: 1 } };
vi.spyOn(botGenerator.profileHelper, "getPmcProfile").mockReturnValue(<IPmcData>mockPlayerProfile); vi.spyOn(botNameService.profileHelper, "getPmcProfile").mockReturnValue(<IPmcData>mockPlayerProfile);
const result = botGenerator.generateUniqueBotNickname(botJsonTemplate, botGenerationDetails, botRole); const result = botNameService.generateUniqueBotNickname(botJsonTemplate, botGenerationDetails, botRole);
expect(result).toMatch(/(one|two)/); expect(result).toMatch(/(one|two)/);
}); });
@ -115,12 +115,12 @@ describe("BotGenerator", () => {
const botGenerationDetails = { isPlayerScav: true, isPmc: false, allPmcsHaveSameNameAsPlayer: false }; const botGenerationDetails = { isPlayerScav: true, isPmc: false, allPmcsHaveSameNameAsPlayer: false };
const botRole = "assault"; const botRole = "assault";
botGenerator.botConfig.chanceAssaultScavHasPlayerScavName = 0; botNameService.botConfig.chanceAssaultScavHasPlayerScavName = 0;
const mockPlayerProfile = { Info: { Nickname: "Player Nickname", Level: 1 } }; const mockPlayerProfile = { Info: { Nickname: "Player Nickname", Level: 1 } };
vi.spyOn(botGenerator.profileHelper, "getPmcProfile").mockReturnValue(<IPmcData>mockPlayerProfile); vi.spyOn(botNameService.profileHelper, "getPmcProfile").mockReturnValue(<IPmcData>mockPlayerProfile);
const result = botGenerator.generateUniqueBotNickname(botJsonTemplate, botGenerationDetails, botRole); const result = botNameService.generateUniqueBotNickname(botJsonTemplate, botGenerationDetails, botRole);
expect(result).toMatch(/(one|two)/); expect(result).toMatch(/(one|two)/);
}); });
@ -130,28 +130,28 @@ describe("BotGenerator", () => {
const botGenerationDetails = { isPlayerScav: true, isPmc: false, allPmcsHaveSameNameAsPlayer: false }; const botGenerationDetails = { isPlayerScav: true, isPmc: false, allPmcsHaveSameNameAsPlayer: false };
const botRole = "assault"; const botRole = "assault";
botGenerator.botConfig.chanceAssaultScavHasPlayerScavName = 0; botNameService.botConfig.chanceAssaultScavHasPlayerScavName = 0;
const mockPlayerProfile = { Info: { Nickname: "Player Nickname", Level: 1 } }; const mockPlayerProfile = { Info: { Nickname: "Player Nickname", Level: 1 } };
vi.spyOn(botGenerator.profileHelper, "getPmcProfile").mockReturnValue(<IPmcData>mockPlayerProfile); vi.spyOn(botNameService.profileHelper, "getPmcProfile").mockReturnValue(<IPmcData>mockPlayerProfile);
const result = botGenerator.generateUniqueBotNickname(botJsonTemplate, botGenerationDetails, botRole); const result = botNameService.generateUniqueBotNickname(botJsonTemplate, botGenerationDetails, botRole);
expect(result).toMatch(/first-(one|two) last-(one|two)/); expect(result).toMatch(/first-(one|two) last-(one|two)/);
}); });
it("should append bot type to end of name when showTypeInNickname option is enabled ", () => { it("should append bot type to end of name when showTypeInNickname option is enabled ", () => {
const botJsonTemplate = { firstName: ["firstname"], lastName: ["lastname"] }; const botJsonTemplate = { firstName: ["firstname"], lastName: ["lastname"] };
const botGenerationDetails = { isPlayerScav: false, isPmc: true, allPmcsHaveSameNameAsPlayer: false }; const botGenerationDetails = { isPlayerScav: false, isPmc: false, allPmcsHaveSameNameAsPlayer: false };
const botRole = "assault"; const botRole = "assault";
botGenerator.botConfig.chanceAssaultScavHasPlayerScavName = 0; botNameService.botConfig.chanceAssaultScavHasPlayerScavName = 0;
botGenerator.botConfig.showTypeInNickname = true; botNameService.botConfig.showTypeInNickname = true;
const mockPlayerProfile = { Info: { Nickname: "Player Nickname", Level: 1 } }; const mockPlayerProfile = { Info: { Nickname: "Player Nickname", Level: 1 } };
vi.spyOn(botGenerator.profileHelper, "getPmcProfile").mockReturnValue(<IPmcData>mockPlayerProfile); vi.spyOn(botNameService.profileHelper, "getPmcProfile").mockReturnValue(<IPmcData>mockPlayerProfile);
const result = botGenerator.generateUniqueBotNickname(botJsonTemplate, botGenerationDetails, botRole); const result = botNameService.generateUniqueBotNickname(botJsonTemplate, botGenerationDetails, botRole);
expect(result).toBe("firstname lastname assault"); expect(result).toBe("firstname lastname assault");
}); });
@ -161,17 +161,18 @@ describe("BotGenerator", () => {
const botGenerationDetails = { isPlayerScav: false, isPmc: true, allPmcsHaveSameNameAsPlayer: true }; const botGenerationDetails = { isPlayerScav: false, isPmc: true, allPmcsHaveSameNameAsPlayer: true };
const botRole = "assault"; const botRole = "assault";
botGenerator.botConfig.showTypeInNickname = false; botNameService.botConfig.showTypeInNickname = false;
botGenerator.pmcConfig.addPrefixToSameNamePMCAsPlayerChance = 100; botNameService.pmcConfig.addPrefixToSameNamePMCAsPlayerChance = 100;
const mockPlayerProfile = { Info: { Nickname: "player", Level: 1 } }; const mockPlayerProfile = { Info: { Nickname: "player", Level: 1 } };
vi.spyOn(botGenerator.profileHelper, "getPmcProfile").mockReturnValue(<IPmcData>mockPlayerProfile); vi.spyOn(botNameService.profileHelper, "getPmcProfile").mockReturnValue(<IPmcData>mockPlayerProfile);
vi.spyOn(botNameService.botHelper, "getPmcNicknameOfMaxLength").mockReturnValue("player");
const getRandomTextThatMatchesPartialKeySpy = vi const getRandomTextThatMatchesPartialKeySpy = vi
.spyOn((botGenerator as any).localisationService, "getRandomTextThatMatchesPartialKey") .spyOn((botNameService as any).localisationService, "getRandomTextThatMatchesPartialKey")
.mockReturnValue("test"); .mockReturnValue("test");
const result = botGenerator.generateUniqueBotNickname(botJsonTemplate, botGenerationDetails, botRole); const result = botNameService.generateUniqueBotNickname(botJsonTemplate, botGenerationDetails, botRole);
expect(getRandomTextThatMatchesPartialKeySpy).toHaveBeenCalled(); expect(getRandomTextThatMatchesPartialKeySpy).toHaveBeenCalled();
expect(result).toBe("test player"); expect(result).toBe("test player");
@ -179,17 +180,17 @@ describe("BotGenerator", () => {
it("should generate PMC name in brackets behind scav name when chanceAssaultScavHasPlayerScavName is enabled", () => { it("should generate PMC name in brackets behind scav name when chanceAssaultScavHasPlayerScavName is enabled", () => {
const botJsonTemplate = { firstName: ["scav"], lastName: [] }; const botJsonTemplate = { firstName: ["scav"], lastName: [] };
const botGenerationDetails = { isPlayerScav: false, isPmc: true, allPmcsHaveSameNameAsPlayer: false }; const botGenerationDetails = { isPlayerScav: false, isPmc: false, allPmcsHaveSameNameAsPlayer: false };
const botRole = "assault"; const botRole = "assault";
botGenerator.botConfig.chanceAssaultScavHasPlayerScavName = 100; botNameService.botConfig.chanceAssaultScavHasPlayerScavName = 100;
botGenerator.databaseService.getBots().types.usec.firstName = ["player"]; botNameService.databaseService.getBots().types.usec.firstName = ["player"];
botGenerator.databaseService.getBots().types.bear.firstName = []; botNameService.databaseService.getBots().types.bear.firstName = [];
const mockPlayerProfile = { Info: { Nickname: "Player", Level: 1 } }; const mockPlayerProfile = { Info: { Nickname: "Player", Level: 1 } };
vi.spyOn(botGenerator.profileHelper, "getPmcProfile").mockReturnValue(<IPmcData>mockPlayerProfile); vi.spyOn(botNameService.profileHelper, "getPmcProfile").mockReturnValue(<IPmcData>mockPlayerProfile);
const result = botGenerator.generateUniqueBotNickname(botJsonTemplate, botGenerationDetails, botRole); const result = botNameService.generateUniqueBotNickname(botJsonTemplate, botGenerationDetails, botRole);
expect(result).toBe("scav (player)"); expect(result).toBe("scav (player)");
}); });
}); });

View File

@ -42,7 +42,7 @@ describe("BotHelper", () => {
}); });
const warningLogSpy = vi.spyOn(botDifficultyHelper.logger, "warning"); const warningLogSpy = vi.spyOn(botDifficultyHelper.logger, "warning");
const result = botDifficultyHelper.getBotDifficultySettings("INVALID_TYPE", "normal"); const result = botDifficultyHelper.getBotDifficultySettings("INVALID_TYPE", "normal", { types: {} });
expect(result).toBe("test"); expect(result).toBe("test");
expect(warningLogSpy).toHaveBeenCalledTimes(1); expect(warningLogSpy).toHaveBeenCalledTimes(1);
}); });