mirror of
https://github.com/Kvan7/Exiled-Exchange-2.git
synced 2026-05-04 08:21:28 +00:00
4d36ce3daf
Fixes #857
68 lines
2.5 KiB
TypeScript
68 lines
2.5 KiB
TypeScript
/**
|
|
* Integration tests for the parser
|
|
*/
|
|
|
|
import { parseClipboard } from "@/parser";
|
|
import { NormalItem, RareItem, SpectreIncSpirit } from "./items";
|
|
import { beforeEach, describe, expect, it } from "vitest";
|
|
import { setupTests } from "@specs/vitest.setup";
|
|
import { init } from "@/assets/data";
|
|
|
|
describe("Parse Item Properties", () => {
|
|
// Tests almost everything on items, except for modifiers themselves
|
|
beforeEach(async () => {
|
|
setupTests();
|
|
await init("en");
|
|
});
|
|
|
|
it("parses bow dps", () => {
|
|
const item = parseClipboard(RareItem.rawText);
|
|
|
|
expect(item.isOk()).toBe(true);
|
|
|
|
const parsedItem = item._unsafeUnwrap();
|
|
|
|
expect(parsedItem.weaponPHYSICAL).toBe(RareItem.weaponPHYSICAL);
|
|
expect(parsedItem.weaponELEMENTAL).toBe(RareItem.weaponELEMENTAL);
|
|
expect(parsedItem.weaponAS).toBe(RareItem.weaponAS);
|
|
expect(parsedItem.weaponCRIT).toBe(RareItem.weaponCRIT);
|
|
|
|
expect(parsedItem.requires).not.toBeUndefined();
|
|
expect(parsedItem.requires?.level).toBe(RareItem.requires?.level);
|
|
expect(parsedItem.requires?.str).toBe(RareItem.requires?.str);
|
|
expect(parsedItem.requires?.dex).toBe(RareItem.requires?.dex);
|
|
expect(parsedItem.requires?.int).toBe(RareItem.requires?.int);
|
|
});
|
|
|
|
it("parses a spectre's spirit", () => {
|
|
const item = parseClipboard(SpectreIncSpirit.rawText);
|
|
|
|
expect(item.isOk()).toBe(true);
|
|
|
|
const parsedItem = item._unsafeUnwrap();
|
|
|
|
expect(parsedItem.weaponSPIRIT).toBe(SpectreIncSpirit.weaponSPIRIT);
|
|
|
|
expect(parsedItem.requires).not.toBeUndefined();
|
|
expect(parsedItem.requires?.level).toBe(SpectreIncSpirit.requires?.level);
|
|
expect(parsedItem.requires?.str).toBe(SpectreIncSpirit.requires?.str);
|
|
expect(parsedItem.requires?.dex).toBe(SpectreIncSpirit.requires?.dex);
|
|
expect(parsedItem.requires?.int).toBe(SpectreIncSpirit.requires?.int);
|
|
});
|
|
|
|
it("parses armour props", () => {
|
|
const item = parseClipboard(NormalItem.rawText);
|
|
const parsedItem = item._unsafeUnwrap();
|
|
|
|
expect(parsedItem.armourAR).toBe(NormalItem.armourAR);
|
|
expect(parsedItem.armourEV).toBe(NormalItem.armourEV);
|
|
expect(parsedItem.armourES).toBe(NormalItem.armourES);
|
|
|
|
expect(parsedItem.requires).not.toBeUndefined();
|
|
expect(parsedItem.requires?.level).toBe(NormalItem.requires?.level);
|
|
expect(parsedItem.requires?.str).toBe(NormalItem.requires?.str);
|
|
expect(parsedItem.requires?.dex).toBe(NormalItem.requires?.dex);
|
|
expect(parsedItem.requires?.int).toBe(NormalItem.requires?.int);
|
|
});
|
|
});
|