UNPKG

2.99 kBJavaScriptView Raw
1"use strict";
2var __importStar = (this && this.__importStar) || function (mod) {
3 if (mod && mod.__esModule) return mod;
4 var result = {};
5 if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
6 result["default"] = mod;
7 return result;
8};
9Object.defineProperty(exports, "__esModule", { value: true });
10const util_1 = require("@xmcl/util");
11const path = __importStar(require("path"));
12const forgeweb_1 = require("./forgeweb");
13jest.mock("@xmcl/net");
14describe("ForgeWebpage", () => {
15 let mockNet;
16 jest.mock("@xmcl/net");
17 beforeEach(() => {
18 mockNet = jest.requireMock("@xmcl/net");
19 });
20 describe("#parse", () => {
21 test("#parse", async () => {
22 const content = await util_1.vfs.readFile(path.join(__dirname, "..", "..", "mock", "sample-forge.html"));
23 const page = forgeweb_1.ForgeWebPage.parse(content.toString());
24 expect(page).toBeTruthy();
25 expect(page.versions).toHaveLength(3);
26 expect(page.mcversion).toEqual("1.14.4");
27 for (const ver of page.versions) {
28 expect(ver.type).toBeTruthy();
29 expect(ver.version).toBeTruthy();
30 expect(ver.installer.sha1).toBeTruthy();
31 expect(ver.installer.path).toBeTruthy();
32 expect(ver.installer.md5).toBeTruthy();
33 }
34 const last = page.versions[page.versions.length - 1];
35 expect(last.installer.md5).toEqual("2d24a32cce228d4cf3c42caf2e3cfe37");
36 expect(last.installer.sha1).toEqual("80ffade96232940422cbaf218ce6d424fd9192f2");
37 expect(last.installer.path).toEqual("http://files.minecraftforge.net/maven/net/minecraftforge/forge/1.14.4-28.0.4/forge-1.14.4-28.0.4-installer.jar");
38 });
39 });
40 describe("#getWebPage", () => {
41 test("Get Latest", async () => {
42 mockNet.getIfUpdate.mockReturnValue(Promise.resolve({
43 timestamp: "0",
44 }));
45 const page = await forgeweb_1.ForgeWebPage.getWebPage();
46 expect(page).toBeTruthy();
47 expect(mockNet.getIfUpdate).toHaveBeenCalled();
48 expect(mockNet.getIfUpdate).toHaveBeenCalledWith("http://files.minecraftforge.net/maven/net/minecraftforge/forge/index.html", forgeweb_1.ForgeWebPage.parse, undefined);
49 });
50 test("Get Specific version", async () => {
51 mockNet.getIfUpdate.mockReturnValue(Promise.resolve({
52 timestamp: "0",
53 }));
54 const page = await forgeweb_1.ForgeWebPage.getWebPage({ mcversion: "1.12.2" });
55 expect(page).toBeTruthy();
56 expect(mockNet.getIfUpdate).toHaveBeenCalled();
57 expect(mockNet.getIfUpdate).toHaveBeenCalledWith("http://files.minecraftforge.net/maven/net/minecraftforge/forge/index_1.12.2.html", forgeweb_1.ForgeWebPage.parse, undefined);
58 });
59 });
60});
61//# sourceMappingURL=webpage.test.js.map
\No newline at end of file