itch-dl
Version:
Bulk download games from itch.io - TypeScript implementation
49 lines (48 loc) • 1.8 kB
JavaScript
;
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);
});