@retroachievements/api
Version:
A well-tested library that lets you get achievement, user, and game data from RetroAchievements.
125 lines (114 loc) • 3.6 kB
text/typescript
/* eslint-disable sonarjs/no-duplicate-string */
import { http, HttpResponse } from "msw";
import { setupServer } from "msw/node";
import { apiBaseUrl } from "../utils/internal";
import { buildAuthorization } from "../utils/public";
import { getGameExtended } from "./getGameExtended";
import type { GetGameExtendedResponse } from "./models";
const server = setupServer();
describe("Function: getGameExtended", () => {
// MSW Setup
beforeAll(() => server.listen());
afterEach(() => server.resetHandlers());
afterAll(() => server.close());
it("is defined #sanity", () => {
// ASSERT
expect(getGameExtended).toBeDefined();
});
it("given a game ID, retrieves extended metadata about the game", async () => {
// ARRANGE
const authorization = buildAuthorization({
username: "mockUserName",
webApiKey: "mockWebApiKey",
});
const mockResponse: GetGameExtendedResponse = {
ID: 14_402,
Title: "Dragster",
ConsoleID: 25,
ForumTopicID: 9145,
Flags: 0,
ImageIcon: "/Images/026368.png",
ImageTitle: "/Images/026366.png",
ImageIngame: "/Images/026367.png",
ImageBoxArt: "/Images/026365.png",
Publisher: "Activision ",
Developer: "David Crane",
Genre: "Racing",
Released: "1980",
IsFinal: false,
ConsoleName: "Atari 2600",
RichPresencePatch: "2b92fa1bf9635c303b3b7f8feea3ed3c",
NumAchievements: 12,
NumDistinctPlayersCasual: "454",
NumDistinctPlayersHardcore: "323",
Claims: [],
Achievements: {
"79434": {
ID: "79434",
NumAwarded: "338",
NumAwardedHardcore: "253",
Title: "Novice Dragster Driver 1",
Description: "Complete your very first race in game 1.",
Points: "1",
TrueRatio: "1",
Author: "Boldewin",
DateModified: "2019-08-01 19:03:46",
DateCreated: "2019-07-31 18:49:57",
BadgeName: "85541",
DisplayOrder: "0",
MemAddr: "f5c41fa0b5fa0d5fbb8a74c598f18582",
},
},
};
server.use(
http.get(`${apiBaseUrl}/API_GetGameExtended.php`, () =>
HttpResponse.json(mockResponse)
)
);
// ACT
const response = await getGameExtended(authorization, {
gameId: 14_402,
isRequestingUnofficialAchievements: true,
});
// ASSERT
expect(response).toEqual({
id: 14_402,
title: "Dragster",
consoleId: 25,
forumTopicId: 9145,
flags: 0,
imageIcon: "/Images/026368.png",
imageTitle: "/Images/026366.png",
imageIngame: "/Images/026367.png",
imageBoxArt: "/Images/026365.png",
publisher: "Activision ",
developer: "David Crane",
genre: "Racing",
released: "1980",
isFinal: false,
consoleName: "Atari 2600",
richPresencePatch: "2b92fa1bf9635c303b3b7f8feea3ed3c",
numAchievements: 12,
numDistinctPlayersCasual: 454,
numDistinctPlayersHardcore: 323,
claims: [],
achievements: {
"79434": {
id: 79_434,
numAwarded: 338,
numAwardedHardcore: 253,
title: "Novice Dragster Driver 1",
description: "Complete your very first race in game 1.",
points: 1,
trueRatio: 1,
author: "Boldewin",
dateModified: "2019-08-01 19:03:46",
dateCreated: "2019-07-31 18:49:57",
badgeName: "85541",
displayOrder: 0,
memAddr: "f5c41fa0b5fa0d5fbb8a74c598f18582",
},
},
});
});
});