test: add fabric tests
This commit is contained in:
parent
eb380f9403
commit
7e4a9ad055
8 changed files with 297 additions and 9 deletions
|
|
@ -47,10 +47,12 @@ const tempFolder = import.meta.dirname
|
|||
if (await fExists(path.join(tempFolder, "vanilla"))) { await fs.rm(path.join(tempFolder, "vanilla"), { recursive: true }) }
|
||||
if (await fExists(path.join(tempFolder, "modloaders/forge"))) { await fs.rm(path.join(tempFolder, "modloaders/forge"), { recursive: true }) }
|
||||
if (await fExists(path.join(tempFolder, "modloaders/neoforge"))) { await fs.rm(path.join(tempFolder, "modloaders/neoforge"), { recursive: true }) }
|
||||
if (await fExists(path.join(tempFolder, "modloaders/fabric"))) { await fs.rm(path.join(tempFolder, "modloaders/fabric"), { recursive: true }) }
|
||||
|
||||
await fs.mkdir(path.join(tempFolder, "vanilla"))
|
||||
await fs.mkdir(path.join(tempFolder, "modloaders/forge"))
|
||||
await fs.mkdir(path.join(tempFolder, "modloaders/neoforge"))
|
||||
await fs.mkdir(path.join(tempFolder, "vanilla"), {recursive: true})
|
||||
await fs.mkdir(path.join(tempFolder, "modloaders/forge"), {recursive: true})
|
||||
await fs.mkdir(path.join(tempFolder, "modloaders/neoforge"), {recursive: true})
|
||||
await fs.mkdir(path.join(tempFolder, "modloaders/fabric"), {recursive: true})
|
||||
|
||||
// Forge
|
||||
{
|
||||
|
|
@ -67,10 +69,10 @@ await fs.mkdir(path.join(tempFolder, "modloaders/neoforge"))
|
|||
if (!await fExists(path.join(tempFolder, `modloaders/forge/forge-${version}-${forgeVersion}.test.ts`))) {
|
||||
let result = ""
|
||||
if (java) {
|
||||
const template = await fs.readFile(path.join(tempFolder, "forge-java.test.ts.template"), { encoding: "utf-8" })
|
||||
const template = await fs.readFile(path.join(tempFolder, "modloader-java.test.ts.template"), { encoding: "utf-8" })
|
||||
result = template.replaceAll("${version}", version).replaceAll("${modloader}", "forge").replaceAll("${modloader_version}", forgeVersion).replaceAll("${java}", await getJava(version))
|
||||
} else {
|
||||
const template = await fs.readFile(path.join(tempFolder, "forge.test.ts.template"), { encoding: "utf-8" })
|
||||
const template = await fs.readFile(path.join(tempFolder, "modloader.test.ts.template"), { encoding: "utf-8" })
|
||||
result = template.replaceAll("${version}", version).replaceAll("${modloader}", "forge").replaceAll("${modloader_version}", forgeVersion)
|
||||
}
|
||||
await fs.writeFile(path.join(tempFolder, `modloaders/forge/forge-${version}-${forgeVersion}.test.ts`), result)
|
||||
|
|
@ -99,10 +101,10 @@ await fs.mkdir(path.join(tempFolder, "modloaders/neoforge"))
|
|||
if (!await fExists(path.join(tempFolder, `modloaders/neoforge/neoforge-${mcVersion}-${neoForgeVersion}.test.ts`))) {
|
||||
let result = ""
|
||||
if (java) {
|
||||
const template = await fs.readFile(path.join(tempFolder, "forge-java.test.ts.template"), { encoding: "utf-8" })
|
||||
const template = await fs.readFile(path.join(tempFolder, "modloader-java.test.ts.template"), { encoding: "utf-8" })
|
||||
result = template.replaceAll("${version}", mcVersion).replaceAll("${modloader}", "neoforge").replaceAll("${modloader_version}", neoForgeVersion).replaceAll("${java}", await getJava(mcVersion))
|
||||
} else {
|
||||
const template = await fs.readFile(path.join(tempFolder, "forge.test.ts.template"), { encoding: "utf-8" })
|
||||
const template = await fs.readFile(path.join(tempFolder, "modloader.test.ts.template"), { encoding: "utf-8" })
|
||||
result = template.replaceAll("${version}", mcVersion).replaceAll("${modloader}", "neoforge").replaceAll("${modloader_version}", neoForgeVersion)
|
||||
}
|
||||
await fs.writeFile(path.join(tempFolder, `modloaders/neoforge/neoforge-${mcVersion}-${neoForgeVersion}.test.ts`), result)
|
||||
|
|
@ -111,6 +113,32 @@ await fs.mkdir(path.join(tempFolder, "modloaders/neoforge"))
|
|||
}
|
||||
}
|
||||
|
||||
// Fabric
|
||||
{
|
||||
let mcVersions = (await (await fetch("https://meta.fabricmc.net/v2/versions/game")).json()).filter(v => {
|
||||
return importantVersions.includes(v.version)
|
||||
}).map(v => v.version)
|
||||
|
||||
for (const mcVersion of mcVersions) {
|
||||
const loaderVersions = (await (await fetch(`https://meta.fabricmc.net/v2/versions/loader/${mcVersion}`)).json())
|
||||
const fabricVersion = loaderVersions.find(v => v.loader.stable)
|
||||
if (fabricVersion) {
|
||||
if (!await fExists(path.join(tempFolder, `modloaders/fabric/fabric-${mcVersion}-${fabricVersion.loader.version}.test.ts`))) {
|
||||
let result = ""
|
||||
if (java) {
|
||||
const template = await fs.readFile(path.join(tempFolder, "modloader-java.test.ts.template"), { encoding: "utf-8" })
|
||||
result = template.replaceAll("${version}", mcVersion).replaceAll("${modloader}", "fabric").replaceAll("${modloader_version}", fabricVersion.loader.version).replaceAll("${java}", await getJava(mcVersion))
|
||||
} else {
|
||||
const template = await fs.readFile(path.join(tempFolder, "modloader.test.ts.template"), { encoding: "utf-8" })
|
||||
result = template.replaceAll("${version}", mcVersion).replaceAll("${modloader}", "fabric").replaceAll("${modloader_version}", fabricVersion.loader.version)
|
||||
}
|
||||
await fs.writeFile(path.join(tempFolder, `modloaders/fabric/fabric-${mcVersion}-${fabricVersion.loader.version}.test.ts`), result)
|
||||
console.log(`Done fabric ${mcVersion}`)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Vanilla
|
||||
{
|
||||
vanillaVersions.filter(v => importantVersions.includes(v.id)).forEach(async v => {
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ test("launch game", { timeout: 0, tags: ["full", "forge"] }, async () => {
|
|||
const instance = new Instance({
|
||||
version: "${version}",
|
||||
auth: offlineAuth("player"),
|
||||
paths: { root: gameRoot, instance: path.join(gameRoot, "instances", "${version}") },
|
||||
paths: { root: gameRoot, instance: path.join(gameRoot, "instances", "${modloader}-${version}-${modloader_version}") },
|
||||
javaExecutable: "${java}",
|
||||
modloader: {
|
||||
name: "${modloader}",
|
||||
|
|
@ -15,7 +15,7 @@ test("launch game", { timeout: 0, tags: ["full", "vanilla"] }, async () => {
|
|||
const instance = new Instance({
|
||||
version: "${version}",
|
||||
auth: offlineAuth("player"),
|
||||
paths: { root: gameRoot, instance: path.join(gameRoot, "instances", "${version}") },
|
||||
paths: { root: gameRoot, instance: path.join(gameRoot, "instances", "${modloader}-${version}-${modloader_version}") },
|
||||
javaExecutable: java,
|
||||
modloader: {
|
||||
name: "${modloader}",
|
||||
52
tests/modloaders/fabric/fabric-1.16.5-0.18.4.test.ts
Normal file
52
tests/modloaders/fabric/fabric-1.16.5-0.18.4.test.ts
Normal file
|
|
@ -0,0 +1,52 @@
|
|||
import { test } from "vitest";
|
||||
import { Instance, offlineAuth, RuntimeManager, getJavaComponent } from "../../../dist/index.js";
|
||||
import path from "path";
|
||||
import fs from "fs/promises";
|
||||
|
||||
const gameRoot = path.join(import.meta.dirname, "..", "..", "temp");
|
||||
// await fs.rm(gameRoot, { recursive: true, force: true });
|
||||
// await fs.mkdir(gameRoot, { recursive: true });
|
||||
|
||||
test("launch game", { timeout: 0, tags: ["full", "forge"] }, async () => {
|
||||
const javaManager = new RuntimeManager(path.join(gameRoot, "java"));
|
||||
javaManager.on("progress", console.log)
|
||||
// const java = await javaManager.use(await getJavaComponent("1.16.5"))
|
||||
|
||||
const instance = new Instance({
|
||||
version: "1.16.5",
|
||||
auth: offlineAuth("player"),
|
||||
paths: { root: gameRoot, instance: path.join(gameRoot, "instances", "fabric-1.16.5-0.18.4") },
|
||||
javaExecutable: "/nix/store/xsm91nhw7b3xld8db6m9yaq4i4dqhc99-openjdk-8u472-b08-jre/bin/java",
|
||||
modloader: {
|
||||
name: "fabric",
|
||||
version: "0.18.4"
|
||||
}
|
||||
});
|
||||
|
||||
instance.on("progress", console.log);
|
||||
instance.on("log", (step, msg) => {
|
||||
console.log(`[${step}] ${msg}`)
|
||||
})
|
||||
|
||||
await instance.install();
|
||||
const p = await instance.launch();
|
||||
|
||||
p.stdout.on("data", (d: Buffer) => {
|
||||
console.log(d.toString());
|
||||
});
|
||||
|
||||
p.stderr.on("data", (d: Buffer) => {
|
||||
console.log(d.toString());
|
||||
});
|
||||
|
||||
await new Promise<void>((res) => {
|
||||
p.on("error", (d: Buffer) => {
|
||||
console.log(d.toString());
|
||||
res();
|
||||
});
|
||||
p.on("close", () => {
|
||||
console.log("closed");
|
||||
res();
|
||||
});
|
||||
});
|
||||
});
|
||||
52
tests/modloaders/fabric/fabric-1.18.2-0.18.4.test.ts
Normal file
52
tests/modloaders/fabric/fabric-1.18.2-0.18.4.test.ts
Normal file
|
|
@ -0,0 +1,52 @@
|
|||
import { test } from "vitest";
|
||||
import { Instance, offlineAuth, RuntimeManager, getJavaComponent } from "../../../dist/index.js";
|
||||
import path from "path";
|
||||
import fs from "fs/promises";
|
||||
|
||||
const gameRoot = path.join(import.meta.dirname, "..", "..", "temp");
|
||||
// await fs.rm(gameRoot, { recursive: true, force: true });
|
||||
// await fs.mkdir(gameRoot, { recursive: true });
|
||||
|
||||
test("launch game", { timeout: 0, tags: ["full", "forge"] }, async () => {
|
||||
const javaManager = new RuntimeManager(path.join(gameRoot, "java"));
|
||||
javaManager.on("progress", console.log)
|
||||
// const java = await javaManager.use(await getJavaComponent("1.18.2"))
|
||||
|
||||
const instance = new Instance({
|
||||
version: "1.18.2",
|
||||
auth: offlineAuth("player"),
|
||||
paths: { root: gameRoot, instance: path.join(gameRoot, "instances", "fabric-1.18.2-0.18.4") },
|
||||
javaExecutable: "/nix/store/rhw336hj0iwv7s3rmcqj5zqpsrw6z1z2-openjdk-21.0.9+10/bin/java",
|
||||
modloader: {
|
||||
name: "fabric",
|
||||
version: "0.18.4"
|
||||
}
|
||||
});
|
||||
|
||||
instance.on("progress", console.log);
|
||||
instance.on("log", (step, msg) => {
|
||||
console.log(`[${step}] ${msg}`)
|
||||
})
|
||||
|
||||
await instance.install();
|
||||
const p = await instance.launch();
|
||||
|
||||
p.stdout.on("data", (d: Buffer) => {
|
||||
console.log(d.toString());
|
||||
});
|
||||
|
||||
p.stderr.on("data", (d: Buffer) => {
|
||||
console.log(d.toString());
|
||||
});
|
||||
|
||||
await new Promise<void>((res) => {
|
||||
p.on("error", (d: Buffer) => {
|
||||
console.log(d.toString());
|
||||
res();
|
||||
});
|
||||
p.on("close", () => {
|
||||
console.log("closed");
|
||||
res();
|
||||
});
|
||||
});
|
||||
});
|
||||
52
tests/modloaders/fabric/fabric-1.20.1-0.18.4.test.ts
Normal file
52
tests/modloaders/fabric/fabric-1.20.1-0.18.4.test.ts
Normal file
|
|
@ -0,0 +1,52 @@
|
|||
import { test } from "vitest";
|
||||
import { Instance, offlineAuth, RuntimeManager, getJavaComponent } from "../../../dist/index.js";
|
||||
import path from "path";
|
||||
import fs from "fs/promises";
|
||||
|
||||
const gameRoot = path.join(import.meta.dirname, "..", "..", "temp");
|
||||
// await fs.rm(gameRoot, { recursive: true, force: true });
|
||||
// await fs.mkdir(gameRoot, { recursive: true });
|
||||
|
||||
test("launch game", { timeout: 0, tags: ["full", "forge"] }, async () => {
|
||||
const javaManager = new RuntimeManager(path.join(gameRoot, "java"));
|
||||
javaManager.on("progress", console.log)
|
||||
// const java = await javaManager.use(await getJavaComponent("1.20.1"))
|
||||
|
||||
const instance = new Instance({
|
||||
version: "1.20.1",
|
||||
auth: offlineAuth("player"),
|
||||
paths: { root: gameRoot, instance: path.join(gameRoot, "instances", "fabric-1.20.1-0.18.4") },
|
||||
javaExecutable: "/nix/store/rhw336hj0iwv7s3rmcqj5zqpsrw6z1z2-openjdk-21.0.9+10/bin/java",
|
||||
modloader: {
|
||||
name: "fabric",
|
||||
version: "0.18.4"
|
||||
}
|
||||
});
|
||||
|
||||
instance.on("progress", console.log);
|
||||
instance.on("log", (step, msg) => {
|
||||
console.log(`[${step}] ${msg}`)
|
||||
})
|
||||
|
||||
await instance.install();
|
||||
const p = await instance.launch();
|
||||
|
||||
p.stdout.on("data", (d: Buffer) => {
|
||||
console.log(d.toString());
|
||||
});
|
||||
|
||||
p.stderr.on("data", (d: Buffer) => {
|
||||
console.log(d.toString());
|
||||
});
|
||||
|
||||
await new Promise<void>((res) => {
|
||||
p.on("error", (d: Buffer) => {
|
||||
console.log(d.toString());
|
||||
res();
|
||||
});
|
||||
p.on("close", () => {
|
||||
console.log("closed");
|
||||
res();
|
||||
});
|
||||
});
|
||||
});
|
||||
52
tests/modloaders/fabric/fabric-1.21.1-0.18.4.test.ts
Normal file
52
tests/modloaders/fabric/fabric-1.21.1-0.18.4.test.ts
Normal file
|
|
@ -0,0 +1,52 @@
|
|||
import { test } from "vitest";
|
||||
import { Instance, offlineAuth, RuntimeManager, getJavaComponent } from "../../../dist/index.js";
|
||||
import path from "path";
|
||||
import fs from "fs/promises";
|
||||
|
||||
const gameRoot = path.join(import.meta.dirname, "..", "..", "temp");
|
||||
// await fs.rm(gameRoot, { recursive: true, force: true });
|
||||
// await fs.mkdir(gameRoot, { recursive: true });
|
||||
|
||||
test("launch game", { timeout: 0, tags: ["full", "forge"] }, async () => {
|
||||
const javaManager = new RuntimeManager(path.join(gameRoot, "java"));
|
||||
javaManager.on("progress", console.log)
|
||||
// const java = await javaManager.use(await getJavaComponent("1.21.1"))
|
||||
|
||||
const instance = new Instance({
|
||||
version: "1.21.1",
|
||||
auth: offlineAuth("player"),
|
||||
paths: { root: gameRoot, instance: path.join(gameRoot, "instances", "fabric-1.21.1-0.18.4") },
|
||||
javaExecutable: "/nix/store/rhw336hj0iwv7s3rmcqj5zqpsrw6z1z2-openjdk-21.0.9+10/bin/java",
|
||||
modloader: {
|
||||
name: "fabric",
|
||||
version: "0.18.4"
|
||||
}
|
||||
});
|
||||
|
||||
instance.on("progress", console.log);
|
||||
instance.on("log", (step, msg) => {
|
||||
console.log(`[${step}] ${msg}`)
|
||||
})
|
||||
|
||||
await instance.install();
|
||||
const p = await instance.launch();
|
||||
|
||||
p.stdout.on("data", (d: Buffer) => {
|
||||
console.log(d.toString());
|
||||
});
|
||||
|
||||
p.stderr.on("data", (d: Buffer) => {
|
||||
console.log(d.toString());
|
||||
});
|
||||
|
||||
await new Promise<void>((res) => {
|
||||
p.on("error", (d: Buffer) => {
|
||||
console.log(d.toString());
|
||||
res();
|
||||
});
|
||||
p.on("close", () => {
|
||||
console.log("closed");
|
||||
res();
|
||||
});
|
||||
});
|
||||
});
|
||||
52
tests/modloaders/fabric/fabric-1.21.11-0.18.4.test.ts
Normal file
52
tests/modloaders/fabric/fabric-1.21.11-0.18.4.test.ts
Normal file
|
|
@ -0,0 +1,52 @@
|
|||
import { test } from "vitest";
|
||||
import { Instance, offlineAuth, RuntimeManager, getJavaComponent } from "../../../dist/index.js";
|
||||
import path from "path";
|
||||
import fs from "fs/promises";
|
||||
|
||||
const gameRoot = path.join(import.meta.dirname, "..", "..", "temp");
|
||||
// await fs.rm(gameRoot, { recursive: true, force: true });
|
||||
// await fs.mkdir(gameRoot, { recursive: true });
|
||||
|
||||
test("launch game", { timeout: 0, tags: ["full", "forge"] }, async () => {
|
||||
const javaManager = new RuntimeManager(path.join(gameRoot, "java"));
|
||||
javaManager.on("progress", console.log)
|
||||
// const java = await javaManager.use(await getJavaComponent("1.21.11"))
|
||||
|
||||
const instance = new Instance({
|
||||
version: "1.21.11",
|
||||
auth: offlineAuth("player"),
|
||||
paths: { root: gameRoot, instance: path.join(gameRoot, "instances", "fabric-1.21.11-0.18.4") },
|
||||
javaExecutable: "/nix/store/rhw336hj0iwv7s3rmcqj5zqpsrw6z1z2-openjdk-21.0.9+10/bin/java",
|
||||
modloader: {
|
||||
name: "fabric",
|
||||
version: "0.18.4"
|
||||
}
|
||||
});
|
||||
|
||||
instance.on("progress", console.log);
|
||||
instance.on("log", (step, msg) => {
|
||||
console.log(`[${step}] ${msg}`)
|
||||
})
|
||||
|
||||
await instance.install();
|
||||
const p = await instance.launch();
|
||||
|
||||
p.stdout.on("data", (d: Buffer) => {
|
||||
console.log(d.toString());
|
||||
});
|
||||
|
||||
p.stderr.on("data", (d: Buffer) => {
|
||||
console.log(d.toString());
|
||||
});
|
||||
|
||||
await new Promise<void>((res) => {
|
||||
p.on("error", (d: Buffer) => {
|
||||
console.log(d.toString());
|
||||
res();
|
||||
});
|
||||
p.on("close", () => {
|
||||
console.log("closed");
|
||||
res();
|
||||
});
|
||||
});
|
||||
});
|
||||
Loading…
Add table
Add a link
Reference in a new issue