2023-03-14 07:07:14 -04:00
|
|
|
import { zipFile } from "@/../tests/utils/zip-utils";
|
|
|
|
import mockFs from "mock-fs";
|
|
|
|
import { ForgeMetadata } from "@/loaders/forge/forge-metadata";
|
|
|
|
import { ForgeMetadataReader } from "@/loaders/forge/forge-metadata-reader";
|
|
|
|
|
|
|
|
beforeEach(async () => {
|
|
|
|
mockFs({
|
|
|
|
"forge.mod.jar": await zipFile([__dirname, "../../../content/forge/mods.toml"], "META-INF/mods.toml"),
|
2024-01-03 13:30:24 -05:00
|
|
|
"neoforge.mod.jar": await zipFile([__dirname, "../../../content/neoforge/mods.toml"], "META-INF/mods.toml"),
|
2023-03-14 07:07:14 -04:00
|
|
|
"text.txt": "",
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
afterEach(() => {
|
|
|
|
mockFs.restore();
|
|
|
|
});
|
|
|
|
|
|
|
|
describe("ForgeMetadataReader", () => {
|
2024-01-03 13:30:24 -05:00
|
|
|
test("successfully reads forge/mods.toml", async () => {
|
2023-03-14 07:07:14 -04:00
|
|
|
const reader = new ForgeMetadataReader();
|
|
|
|
|
|
|
|
const metadata = await reader.readMetadataFile("forge.mod.jar");
|
|
|
|
|
|
|
|
expect(metadata).toBeInstanceOf(ForgeMetadata);
|
|
|
|
});
|
|
|
|
|
2024-01-03 13:30:24 -05:00
|
|
|
test("successfully reads neoforge/mods.toml", async () => {
|
|
|
|
const reader = new ForgeMetadataReader();
|
|
|
|
|
|
|
|
const metadata = await reader.readMetadataFile("neoforge.mod.jar");
|
|
|
|
|
|
|
|
expect(metadata).toBeInstanceOf(ForgeMetadata);
|
|
|
|
});
|
|
|
|
|
2023-03-14 07:07:14 -04:00
|
|
|
test("returns undefined if file is not a Forge mod", async () => {
|
|
|
|
const reader = new ForgeMetadataReader();
|
|
|
|
|
|
|
|
const metadata = await reader.readMetadataFile("text.txt");
|
|
|
|
|
|
|
|
expect(metadata).toBeUndefined();
|
|
|
|
});
|
|
|
|
|
|
|
|
test("returns undefined if file does not exist", async () => {
|
|
|
|
const reader = new ForgeMetadataReader();
|
|
|
|
|
|
|
|
const metadata = await reader.readMetadataFile("text.json");
|
|
|
|
|
|
|
|
expect(metadata).toBeUndefined();
|
|
|
|
});
|
|
|
|
});
|