UNPKG

itch-dl

Version:

Bulk download games from itch.io - TypeScript implementation

49 lines (48 loc) 1.8 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const node_test_1 = __importDefault(require("node:test")); const node_assert_1 = __importDefault(require("node:assert")); const keys_1 = require("../src/keys"); class FakeClient { constructor() { this.page = 0; } async get() { this.page += 1; if (this.page === 1) { return { status: 200, data: { owned_keys: [ { game_id: 1, id: 'a', game: { url: 'u1' } }, { game_id: 2, id: 'b', game: { url: 'u2' } }, ], per_page: 2, }, }; } else if (this.page === 2) { return { status: 200, data: { owned_keys: [{ game_id: 3, id: 'c', game: { url: 'u3' } }], per_page: 2 }, }; } return { status: 400 }; } } (0, node_test_1.default)('loadKeysAndUrls fetches and caches', async () => { const client = new FakeClient(); await (0, keys_1.loadKeysAndUrls)(client); const keys = await (0, keys_1.getDownloadKeys)(client); node_assert_1.default.deepStrictEqual(keys, { 1: 'a', 2: 'b', 3: 'c' }); const urls = await (0, keys_1.getOwnedGames)(client); node_assert_1.default.deepStrictEqual(urls, ['u1', 'u2', 'u3']); const both = await (0, keys_1.getOwnedKeys)(client); node_assert_1.default.deepStrictEqual(both, [keys, urls]); const calls = client.page; await (0, keys_1.getDownloadKeys)(client); node_assert_1.default.strictEqual(client.page, calls); });