Add Minecraft 26.x support and version Java artifacts
This commit is contained in:
@@ -37,7 +37,11 @@ const jar = zipSync(
|
||||
);
|
||||
const checksum = createHash("sha1").update(jar).digest("hex");
|
||||
|
||||
async function isolatedCache(t: TestContext, corruptDownload = false) {
|
||||
async function isolatedCache(
|
||||
t: TestContext,
|
||||
corruptDownload = false,
|
||||
minecraftVersion = "1.21.11",
|
||||
) {
|
||||
const previous = process.cwd();
|
||||
const cacheParent = resolve(".cache");
|
||||
await mkdir(cacheParent, { recursive: true });
|
||||
@@ -54,7 +58,9 @@ async function isolatedCache(t: TestContext, corruptDownload = false) {
|
||||
requests.push(url);
|
||||
if (url.includes("version_manifest_v2"))
|
||||
return Response.json({
|
||||
versions: [{ id: "1.21.11", url: "https://fixture.invalid/version" }],
|
||||
versions: [
|
||||
{ id: minecraftVersion, url: "https://fixture.invalid/version" },
|
||||
],
|
||||
});
|
||||
if (url.endsWith("/version"))
|
||||
return Response.json({
|
||||
@@ -91,6 +97,27 @@ test("missing vanilla cache is prepared completely and subsequent runs work offl
|
||||
assert.deepEqual(requests, []);
|
||||
});
|
||||
|
||||
test("26.x assets use distinct verified caches and reject unsupported versions", async (t) => {
|
||||
await isolatedCache(t, false, "26.2");
|
||||
const directory = await prepareAssets("26.2");
|
||||
assert.equal(directory, ".cache/minecraft/26.2");
|
||||
const marker = JSON.parse(
|
||||
await readFile(`${directory}/.minegeo-assets.json`, "utf8"),
|
||||
);
|
||||
assert.equal(marker.minecraftVersion, "26.2");
|
||||
await assert.rejects(readFile(`${assetsRoot}/.minegeo-assets.json`), {
|
||||
code: "ENOENT",
|
||||
});
|
||||
await assert.rejects(
|
||||
prepareAssets("../secrets"),
|
||||
/Unsupported Minecraft asset version/,
|
||||
);
|
||||
await assert.rejects(
|
||||
prepareAssets("26.3"),
|
||||
/Unsupported Minecraft asset version/,
|
||||
);
|
||||
});
|
||||
|
||||
test("an interrupted extraction with only a blockstate cannot masquerade as complete", async (t) => {
|
||||
await isolatedCache(t);
|
||||
await mkdir(`${assetsRoot}/assets/minecraft/blockstates`, {
|
||||
|
||||
Reference in New Issue
Block a user