psn-api
Version:
A well-tested library that lets you get trophy, user, and game data from the PlayStation Network.
66 lines (55 loc) • 1.75 kB
text/typescript
import nock from "nock";
import type {
AuthorizationPayload,
UserTrophiesBySpecificTitleResponse
} from "../../models";
import { generateTrophyTitle } from "../../test/generators";
import { TROPHY_BASE_URL } from "../TROPHY_BASE_URL";
import { getUserTrophiesForSpecificTitle } from "./getUserTrophiesForSpecificTitle";
describe("Function: getUserTrophiesForSpecificTitle", () => {
afterEach(() => {
nock.cleanAll();
});
it("is defined #sanity", () => {
// ASSERT
expect(getUserTrophiesForSpecificTitle).toBeDefined();
});
it("makes a call to get the summary of the trophies earned by a user for specific titles", async () => {
// ARRANGE
const mockAccountId = "mockAccountId";
const mockAuthorization: AuthorizationPayload = {
accessToken: "mockAccessToken"
};
const mockOptions = {
npTitleIds: "PPSA13195_00,PPSA27366_00",
includeNotEarnedTrophyIds: true
};
const mockResponse: UserTrophiesBySpecificTitleResponse = {
titles: [
{
npTitleId: "PPSA13195_00",
trophyTitles: [generateTrophyTitle()]
},
{
npTitleId: "PPSA27366_00",
trophyTitles: [generateTrophyTitle()]
}
]
};
const baseUrlObj = new URL(TROPHY_BASE_URL);
const baseUrl = `${baseUrlObj.protocol}//${baseUrlObj.host}`;
const basePath = baseUrlObj.pathname;
nock(baseUrl)
.get(`${basePath}/v1/users/${mockAccountId}/titles/trophyTitles`)
.query(true)
.reply(200, mockResponse);
// ACT
const response = await getUserTrophiesForSpecificTitle(
mockAuthorization,
mockAccountId,
mockOptions
);
// ASSERT
expect(response).toEqual(mockResponse);
});
});