Test - InRaidHelper
- Removes tests for missing calculateFenceStandingChangeFromKills method - Adds a test for the resetSkillPointsEarnedDuringRaid method
This commit is contained in:
parent
5aebbb9c86
commit
b59ffd8ff2
@ -3,7 +3,8 @@ import { container } from "tsyringe";
|
|||||||
import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
|
import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
|
||||||
|
|
||||||
import { InRaidHelper } from "@spt-aki/helpers/InRaidHelper";
|
import { InRaidHelper } from "@spt-aki/helpers/InRaidHelper";
|
||||||
import { DatabaseServer } from "@spt-aki/servers/DatabaseServer";
|
|
||||||
|
import { IPmcData } from "@spt-aki/models/eft/common/IPmcData";
|
||||||
|
|
||||||
describe("InRaidHelper", () =>
|
describe("InRaidHelper", () =>
|
||||||
{
|
{
|
||||||
@ -19,67 +20,32 @@ describe("InRaidHelper", () =>
|
|||||||
vi.restoreAllMocks();
|
vi.restoreAllMocks();
|
||||||
});
|
});
|
||||||
|
|
||||||
describe("calculateFenceStandingChangeFromKills", () =>
|
describe("resetSkillPointsEarnedDuringRaid", () =>
|
||||||
{
|
{
|
||||||
it("should return negative value when player kills 2 scavs as scav", () =>
|
it("should reset PointsEarnedDuringSession for each skill in profile", () =>
|
||||||
{
|
{
|
||||||
const fenceStanding = 0;
|
const mockProfile = {
|
||||||
const postRaidPlayerVictims = [{ Side: "Savage", Role: "assault" }, { Side: "Savage", Role: "assault" }]; // Kills
|
Skills: {
|
||||||
|
Common: [
|
||||||
const databaseServer = container.resolve<DatabaseServer>("DatabaseServer");
|
{ Id: "BotReload", Progress: 160.543, PointsEarnedDuringSession: 42, LastAccess: 1712633904 },
|
||||||
const scavStandingChangeOnKill = databaseServer.getTables().bots.types.assault.experience.standingForKill;
|
{ Id: "BotSound", Progress: 145.6547, PointsEarnedDuringSession: 42, LastAccess: 1712633904 },
|
||||||
|
|
||||||
const result = inraidHelper.calculateFenceStandingChangeFromKills(fenceStanding, postRaidPlayerVictims);
|
|
||||||
expect(result).toBe(scavStandingChangeOnKill * postRaidPlayerVictims.length); // Scav rep loss times number of scav kills
|
|
||||||
expect(result).lessThan(0);
|
|
||||||
});
|
|
||||||
|
|
||||||
it("should return positive value when player kills 2 PMCs of different sides as scav", () =>
|
|
||||||
{
|
{
|
||||||
const fenceStanding = 0;
|
Id: "Endurance",
|
||||||
const postRaidPlayerVictims = [{ Side: "Usec", Role: "sptUsec" }, { Side: "Bear", Role: "sptBear" }]; // Kills
|
Progress: 223.951157,
|
||||||
|
PointsEarnedDuringSession: 42,
|
||||||
|
LastAccess: 1712633904,
|
||||||
|
},
|
||||||
|
{ Id: "Strength", Progress: 141.2618, PointsEarnedDuringSession: 42, LastAccess: 1712633904 },
|
||||||
|
],
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
const databaseServer = container.resolve<DatabaseServer>("DatabaseServer");
|
(inraidHelper as any).resetSkillPointsEarnedDuringRaid(<IPmcData>mockProfile);
|
||||||
const bearStandingChangeOnKill = databaseServer.getTables().bots.types.bear.experience.standingForKill;
|
|
||||||
const usecStandingChangeOnKill = databaseServer.getTables().bots.types.bear.experience.standingForKill;
|
|
||||||
|
|
||||||
const result = inraidHelper.calculateFenceStandingChangeFromKills(fenceStanding, postRaidPlayerVictims);
|
for (const skill of mockProfile.Skills.Common)
|
||||||
expect(result).toBe(bearStandingChangeOnKill + usecStandingChangeOnKill);
|
|
||||||
expect(result).greaterThan(0);
|
|
||||||
});
|
|
||||||
|
|
||||||
it("should return negative value when player kills 1 PMC, 1 boss and 2 scavs as scav", () =>
|
|
||||||
{
|
{
|
||||||
const fenceStanding = 0;
|
expect(skill.PointsEarnedDuringSession).toBe(0);
|
||||||
const postRaidPlayerVictims = [{ Side: "Usec", Role: "sptUsec" }, { Side: "savage", Role: "assault" }, {
|
}
|
||||||
Side: "savage",
|
|
||||||
Role: "bossBoar",
|
|
||||||
}, { Side: "savage", Role: "assault" }]; // Kills
|
|
||||||
|
|
||||||
const databaseServer = container.resolve<DatabaseServer>("DatabaseServer");
|
|
||||||
const usecStandingChangeOnKill = databaseServer.getTables().bots.types.bear.experience.standingForKill;
|
|
||||||
const scavStandingChangeOnKill = databaseServer.getTables().bots.types.assault.experience.standingForKill;
|
|
||||||
const bossBoarStandingChangeOnKill =
|
|
||||||
databaseServer.getTables().bots.types.bossboar.experience.standingForKill;
|
|
||||||
|
|
||||||
const result = inraidHelper.calculateFenceStandingChangeFromKills(fenceStanding, postRaidPlayerVictims);
|
|
||||||
expect(result).toBe(
|
|
||||||
usecStandingChangeOnKill + (scavStandingChangeOnKill * 2) + bossBoarStandingChangeOnKill,
|
|
||||||
);
|
|
||||||
expect(result).lessThan(0);
|
|
||||||
});
|
|
||||||
|
|
||||||
it("should return 0 when player kills bot with undefined standing as scav", () =>
|
|
||||||
{
|
|
||||||
const fenceStanding = 0;
|
|
||||||
const postRaidPlayerVictims = [{ Side: "savage", Role: "testRole" }]; // Kills
|
|
||||||
|
|
||||||
// Fake getFenceStandingChangeForKillAsScav() returning null
|
|
||||||
vi.spyOn(inraidHelper, "getFenceStandingChangeForKillAsScav").mockReturnValueOnce(null).mockReturnValueOnce(
|
|
||||||
null,
|
|
||||||
);
|
|
||||||
const result = inraidHelper.calculateFenceStandingChangeFromKills(fenceStanding, postRaidPlayerVictims);
|
|
||||||
expect(result).toBe(0);
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
Loading…
x
Reference in New Issue
Block a user