mirror of
https://github.com/Kir-Antipov/mc-publish.git
synced 2024-11-23 08:51:02 -05:00
116 lines
5.2 KiB
TypeScript
116 lines
5.2 KiB
TypeScript
|
import { describe, test, expect } from "@jest/globals";
|
||
|
import MinecraftVersionResolver from "../src/utils/minecraft-version-resolver";
|
||
|
|
||
|
describe("MinecraftVersionResolver.byName", () => {
|
||
|
test("every predefined MinecraftVersionResolver can be resolved", () => {
|
||
|
for (const [key, value] of Object.entries(MinecraftVersionResolver).filter(([_, x]) => x instanceof MinecraftVersionResolver)) {
|
||
|
expect(MinecraftVersionResolver.byName(key)).toStrictEqual(value);
|
||
|
}
|
||
|
});
|
||
|
|
||
|
test("null is returned if MinecraftVersionResolver with the given name doesn't exist", () => {
|
||
|
expect(MinecraftVersionResolver.byName("non-existing-resolver")).toBeNull();
|
||
|
});
|
||
|
|
||
|
test("name of MinecraftVersionResolver is case insensitive", () => {
|
||
|
expect(MinecraftVersionResolver.byName("latest")).toStrictEqual(MinecraftVersionResolver.latest);
|
||
|
expect(MinecraftVersionResolver.byName("Latest")).toStrictEqual(MinecraftVersionResolver.latest);
|
||
|
expect(MinecraftVersionResolver.byName("LATEST")).toStrictEqual(MinecraftVersionResolver.latest);
|
||
|
expect(MinecraftVersionResolver.byName("LatesT")).toStrictEqual(MinecraftVersionResolver.latest);
|
||
|
});
|
||
|
});
|
||
|
|
||
|
describe("MinecraftVersionResolver.exact", () => {
|
||
|
test("the exact version is returned", async () => {
|
||
|
const _1_17 = (await MinecraftVersionResolver.exact.resolve("1.17")).map(x => x.id);
|
||
|
expect(_1_17).toHaveLength(1);
|
||
|
expect(_1_17).toContain("1.17");
|
||
|
|
||
|
const _1_17_1 = (await MinecraftVersionResolver.exact.resolve("1.17.1")).map(x => x.id);
|
||
|
expect(_1_17_1).toHaveLength(1);
|
||
|
expect(_1_17_1).toContain("1.17.1");
|
||
|
});
|
||
|
|
||
|
test("empty array is returned if no versions were found", async () => {
|
||
|
expect(await MinecraftVersionResolver.exact.resolve("42.0")).toHaveLength(0);
|
||
|
});
|
||
|
});
|
||
|
|
||
|
describe("MinecraftVersionResolver.latest", () => {
|
||
|
test("the latest version of the given minor is returned", async () => {
|
||
|
const versions = (await MinecraftVersionResolver.latest.resolve("1.17")).map(x => x.id);
|
||
|
expect(versions).toHaveLength(1);
|
||
|
expect(versions).toContain("1.17.1");
|
||
|
});
|
||
|
|
||
|
test("empty array is returned if no versions were found", async () => {
|
||
|
expect(await MinecraftVersionResolver.latest.resolve("42.0")).toHaveLength(0);
|
||
|
});
|
||
|
});
|
||
|
|
||
|
describe("MinecraftVersionResolver.all", () => {
|
||
|
test("all versions of the given minor are returned", async () => {
|
||
|
const versions = (await MinecraftVersionResolver.all.resolve("1.17")).map(x => x.id);
|
||
|
expect(versions).toHaveLength(31);
|
||
|
expect(versions).toContain("1.17");
|
||
|
expect(versions).toContain("1.17.1");
|
||
|
expect(versions).toContain("1.17.1-rc2");
|
||
|
expect(versions).toContain("1.17.1-rc1");
|
||
|
expect(versions).toContain("1.17.1-pre3");
|
||
|
expect(versions).toContain("1.17.1-pre2");
|
||
|
expect(versions).toContain("1.17.1-pre1");
|
||
|
expect(versions).toContain("21w03a");
|
||
|
});
|
||
|
|
||
|
test("all versions of the given minor starting with the given build are returned", async () => {
|
||
|
const versions = (await MinecraftVersionResolver.all.resolve("1.17.1")).map(x => x.id);
|
||
|
expect(versions).toHaveLength(6);
|
||
|
expect(versions).toContain("1.17.1");
|
||
|
expect(versions).toContain("1.17.1-rc2");
|
||
|
expect(versions).toContain("1.17.1-rc1");
|
||
|
expect(versions).toContain("1.17.1-pre3");
|
||
|
expect(versions).toContain("1.17.1-pre2");
|
||
|
expect(versions).toContain("1.17.1-pre1");
|
||
|
});
|
||
|
|
||
|
test("empty array is returned if no versions were found", async () => {
|
||
|
expect(await MinecraftVersionResolver.all.resolve("42.0")).toHaveLength(0);
|
||
|
});
|
||
|
});
|
||
|
|
||
|
describe("MinecraftVersionResolver.releases", () => {
|
||
|
test("all releases of the given minor are returned", async () => {
|
||
|
const versions = (await MinecraftVersionResolver.releases.resolve("1.17")).map(x => x.id);
|
||
|
expect(versions).toHaveLength(2);
|
||
|
expect(versions).toContain("1.17");
|
||
|
expect(versions).toContain("1.17.1");
|
||
|
});
|
||
|
|
||
|
test("all releases of the given minor starting with the given build are returned", async () => {
|
||
|
const versions = (await MinecraftVersionResolver.releases.resolve("1.16.1")).map(x => x.id);
|
||
|
expect(versions).toHaveLength(5);
|
||
|
expect(versions).toContain("1.16.1");
|
||
|
expect(versions).toContain("1.16.2");
|
||
|
expect(versions).toContain("1.16.3");
|
||
|
expect(versions).toContain("1.16.4");
|
||
|
expect(versions).toContain("1.16.5");
|
||
|
});
|
||
|
|
||
|
test("an empty array is returned if no versions were found", async () => {
|
||
|
expect(await MinecraftVersionResolver.releases.resolve("42.0")).toHaveLength(0);
|
||
|
});
|
||
|
});
|
||
|
|
||
|
describe("MinecraftVersionResolver.releasesIfAny", () => {
|
||
|
test("all releases of the given minor are returned", async () => {
|
||
|
const versions = (await MinecraftVersionResolver.releasesIfAny.resolve("1.17")).map(x => x.id);
|
||
|
expect(versions).toHaveLength(2);
|
||
|
expect(versions).toContain("1.17");
|
||
|
expect(versions).toContain("1.17.1");
|
||
|
});
|
||
|
|
||
|
test("empty array is returned if no versions were found", async () => {
|
||
|
expect(await MinecraftVersionResolver.releasesIfAny.resolve("42.0")).toHaveLength(0);
|
||
|
});
|
||
|
});
|