1 | ;
|
2 | var __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 | };
|
9 | Object.defineProperty(exports, "__esModule", { value: true });
|
10 | const util_1 = require("@xmcl/util");
|
11 | const path = __importStar(require("path"));
|
12 | const forgeweb_1 = require("./forgeweb");
|
13 | jest.mock("@xmcl/net");
|
14 | describe("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=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2VicGFnZS50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsid2VicGFnZS50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLHFDQUFpQztBQUNqQywyQ0FBNkI7QUFDN0IseUNBQTBDO0FBQzFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7QUFFdkIsUUFBUSxDQUFDLGNBQWMsRUFBRSxHQUFHLEVBQUU7SUFDMUIsSUFBSSxPQUFnRCxDQUFDO0lBQ3JELElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDdkIsVUFBVSxDQUFDLEdBQUcsRUFBRTtRQUNaLE9BQU8sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBNEMsQ0FBQztJQUN2RixDQUFDLENBQUMsQ0FBQztJQUNILFFBQVEsQ0FBQyxRQUFRLEVBQUUsR0FBRyxFQUFFO1FBQ3BCLElBQUksQ0FBQyxRQUFRLEVBQUUsS0FBSyxJQUFJLEVBQUU7WUFDdEIsTUFBTSxPQUFPLEdBQUcsTUFBTSxVQUFHLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLG1CQUFtQixDQUFDLENBQUMsQ0FBQztZQUNsRyxNQUFNLElBQUksR0FBRyx1QkFBWSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztZQUNwRCxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDMUIsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDdEMsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDekMsS0FBSyxNQUFNLEdBQUcsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO2dCQUM3QixNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLFVBQVUsRUFBRSxDQUFDO2dCQUM5QixNQUFNLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFVBQVUsRUFBRSxDQUFDO2dCQUVqQyxNQUFNLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxVQUFVLEVBQUUsQ0FBQztnQkFDeEMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsVUFBVSxFQUFFLENBQUM7Z0JBQ3hDLE1BQU0sQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFVBQVUsRUFBRSxDQUFDO2FBQzFDO1lBQ0QsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztZQUNyRCxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsa0NBQWtDLENBQUMsQ0FBQztZQUN2RSxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsMENBQTBDLENBQUMsQ0FBQztZQUNoRixNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsZ0hBQWdILENBQUMsQ0FBQztRQUMxSixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUMsQ0FBQyxDQUFDO0lBRUgsUUFBUSxDQUFDLGFBQWEsRUFBRSxHQUFHLEVBQUU7UUFDekIsSUFBSSxDQUFDLFlBQVksRUFBRSxLQUFLLElBQUksRUFBRTtZQUMxQixPQUFPLENBQUMsV0FBVyxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDO2dCQUNoRCxTQUFTLEVBQUUsR0FBRzthQUNqQixDQUFDLENBQUMsQ0FBQztZQUNKLE1BQU0sSUFBSSxHQUFHLE1BQU0sdUJBQVksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUU3QyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDMUIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQy9DLE1BQU0sQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUMsb0JBQW9CLENBQUMsMkVBQTJFLEVBQUUsdUJBQVksQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFFakssQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsc0JBQXNCLEVBQUUsS0FBSyxJQUFJLEVBQUU7WUFDcEMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQztnQkFDaEQsU0FBUyxFQUFFLEdBQUc7YUFDakIsQ0FBQyxDQUFDLENBQUM7WUFDSixNQUFNLElBQUksR0FBRyxNQUFNLHVCQUFZLENBQUMsVUFBVSxDQUFDLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7WUFFcEUsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQzFCLE1BQU0sQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUMvQyxNQUFNLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDLG9CQUFvQixDQUFDLGtGQUFrRixFQUFFLHVCQUFZLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQ3hLLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHZmcyB9IGZyb20gXCJAeG1jbC91dGlsXCI7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gXCJwYXRoXCI7XG5pbXBvcnQgeyBGb3JnZVdlYlBhZ2UgfSBmcm9tIFwiLi9mb3JnZXdlYlwiO1xuamVzdC5tb2NrKFwiQHhtY2wvbmV0XCIpO1xuXG5kZXNjcmliZShcIkZvcmdlV2VicGFnZVwiLCAoKSA9PiB7XG4gICAgbGV0IG1vY2tOZXQ6IGplc3QuTW9ja2VkPHR5cGVvZiBpbXBvcnQoXCJAeG1jbC9uZXRcIik+O1xuICAgIGplc3QubW9jayhcIkB4bWNsL25ldFwiKTtcbiAgICBiZWZvcmVFYWNoKCgpID0+IHtcbiAgICAgICAgbW9ja05ldCA9IGplc3QucmVxdWlyZU1vY2soXCJAeG1jbC9uZXRcIikgYXMgamVzdC5Nb2NrZWQ8dHlwZW9mIGltcG9ydChcIkB4bWNsL25ldFwiKT47XG4gICAgfSk7XG4gICAgZGVzY3JpYmUoXCIjcGFyc2VcIiwgKCkgPT4ge1xuICAgICAgICB0ZXN0KFwiI3BhcnNlXCIsIGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGNvbnRlbnQgPSBhd2FpdCB2ZnMucmVhZEZpbGUocGF0aC5qb2luKF9fZGlybmFtZSwgXCIuLlwiLCBcIi4uXCIsIFwibW9ja1wiLCBcInNhbXBsZS1mb3JnZS5odG1sXCIpKTtcbiAgICAgICAgICAgIGNvbnN0IHBhZ2UgPSBGb3JnZVdlYlBhZ2UucGFyc2UoY29udGVudC50b1N0cmluZygpKTtcbiAgICAgICAgICAgIGV4cGVjdChwYWdlKS50b0JlVHJ1dGh5KCk7XG4gICAgICAgICAgICBleHBlY3QocGFnZS52ZXJzaW9ucykudG9IYXZlTGVuZ3RoKDMpO1xuICAgICAgICAgICAgZXhwZWN0KHBhZ2UubWN2ZXJzaW9uKS50b0VxdWFsKFwiMS4xNC40XCIpO1xuICAgICAgICAgICAgZm9yIChjb25zdCB2ZXIgb2YgcGFnZS52ZXJzaW9ucykge1xuICAgICAgICAgICAgICAgIGV4cGVjdCh2ZXIudHlwZSkudG9CZVRydXRoeSgpO1xuICAgICAgICAgICAgICAgIGV4cGVjdCh2ZXIudmVyc2lvbikudG9CZVRydXRoeSgpO1xuXG4gICAgICAgICAgICAgICAgZXhwZWN0KHZlci5pbnN0YWxsZXIuc2hhMSkudG9CZVRydXRoeSgpO1xuICAgICAgICAgICAgICAgIGV4cGVjdCh2ZXIuaW5zdGFsbGVyLnBhdGgpLnRvQmVUcnV0aHkoKTtcbiAgICAgICAgICAgICAgICBleHBlY3QodmVyLmluc3RhbGxlci5tZDUpLnRvQmVUcnV0aHkoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGxhc3QgPSBwYWdlLnZlcnNpb25zW3BhZ2UudmVyc2lvbnMubGVuZ3RoIC0gMV07XG4gICAgICAgICAgICBleHBlY3QobGFzdC5pbnN0YWxsZXIubWQ1KS50b0VxdWFsKFwiMmQyNGEzMmNjZTIyOGQ0Y2YzYzQyY2FmMmUzY2ZlMzdcIik7XG4gICAgICAgICAgICBleHBlY3QobGFzdC5pbnN0YWxsZXIuc2hhMSkudG9FcXVhbChcIjgwZmZhZGU5NjIzMjk0MDQyMmNiYWYyMThjZTZkNDI0ZmQ5MTkyZjJcIik7XG4gICAgICAgICAgICBleHBlY3QobGFzdC5pbnN0YWxsZXIucGF0aCkudG9FcXVhbChcImh0dHA6Ly9maWxlcy5taW5lY3JhZnRmb3JnZS5uZXQvbWF2ZW4vbmV0L21pbmVjcmFmdGZvcmdlL2ZvcmdlLzEuMTQuNC0yOC4wLjQvZm9yZ2UtMS4xNC40LTI4LjAuNC1pbnN0YWxsZXIuamFyXCIpO1xuICAgICAgICB9KTtcbiAgICB9KTtcblxuICAgIGRlc2NyaWJlKFwiI2dldFdlYlBhZ2VcIiwgKCkgPT4ge1xuICAgICAgICB0ZXN0KFwiR2V0IExhdGVzdFwiLCBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICBtb2NrTmV0LmdldElmVXBkYXRlLm1vY2tSZXR1cm5WYWx1ZShQcm9taXNlLnJlc29sdmUoe1xuICAgICAgICAgICAgICAgIHRpbWVzdGFtcDogXCIwXCIsXG4gICAgICAgICAgICB9KSk7XG4gICAgICAgICAgICBjb25zdCBwYWdlID0gYXdhaXQgRm9yZ2VXZWJQYWdlLmdldFdlYlBhZ2UoKTtcblxuICAgICAgICAgICAgZXhwZWN0KHBhZ2UpLnRvQmVUcnV0aHkoKTtcbiAgICAgICAgICAgIGV4cGVjdChtb2NrTmV0LmdldElmVXBkYXRlKS50b0hhdmVCZWVuQ2FsbGVkKCk7XG4gICAgICAgICAgICBleHBlY3QobW9ja05ldC5nZXRJZlVwZGF0ZSkudG9IYXZlQmVlbkNhbGxlZFdpdGgoXCJodHRwOi8vZmlsZXMubWluZWNyYWZ0Zm9yZ2UubmV0L21hdmVuL25ldC9taW5lY3JhZnRmb3JnZS9mb3JnZS9pbmRleC5odG1sXCIsIEZvcmdlV2ViUGFnZS5wYXJzZSwgdW5kZWZpbmVkKTtcblxuICAgICAgICB9KTtcbiAgICAgICAgdGVzdChcIkdldCBTcGVjaWZpYyB2ZXJzaW9uXCIsIGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgIG1vY2tOZXQuZ2V0SWZVcGRhdGUubW9ja1JldHVyblZhbHVlKFByb21pc2UucmVzb2x2ZSh7XG4gICAgICAgICAgICAgICAgdGltZXN0YW1wOiBcIjBcIixcbiAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgIGNvbnN0IHBhZ2UgPSBhd2FpdCBGb3JnZVdlYlBhZ2UuZ2V0V2ViUGFnZSh7IG1jdmVyc2lvbjogXCIxLjEyLjJcIiB9KTtcblxuICAgICAgICAgICAgZXhwZWN0KHBhZ2UpLnRvQmVUcnV0aHkoKTtcbiAgICAgICAgICAgIGV4cGVjdChtb2NrTmV0LmdldElmVXBkYXRlKS50b0hhdmVCZWVuQ2FsbGVkKCk7XG4gICAgICAgICAgICBleHBlY3QobW9ja05ldC5nZXRJZlVwZGF0ZSkudG9IYXZlQmVlbkNhbGxlZFdpdGgoXCJodHRwOi8vZmlsZXMubWluZWNyYWZ0Zm9yZ2UubmV0L21hdmVuL25ldC9taW5lY3JhZnRmb3JnZS9mb3JnZS9pbmRleF8xLjEyLjIuaHRtbFwiLCBGb3JnZVdlYlBhZ2UucGFyc2UsIHVuZGVmaW5lZCk7XG4gICAgICAgIH0pO1xuICAgIH0pO1xufSk7XG4iXX0= |
\ | No newline at end of file |