Skip to content

Commit

Permalink
test(requests): getting user lists
Browse files Browse the repository at this point in the history
  • Loading branch information
seferturan committed Feb 14, 2025
1 parent 1d61efe commit ae2c9b9
Show file tree
Hide file tree
Showing 5 changed files with 132 additions and 4 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
import { assertDefined } from '$lib/utils/assert/assertDefined.ts';
import { ListedMoviesMappedMock } from '$mocks/data/lists/mapped/ListedMoviesMappedMock.ts';
import { ListedShowsMappedMock } from '$mocks/data/lists/mapped/ListedShowsMappedMock.ts';
import { HereticListsMappedMock } from '$mocks/data/summary/movies/heretic/mapped/HereticListsMappedMock.ts';
import { SiloListsMappedMock } from '$mocks/data/summary/shows/silo/mapped/SiloListsMappedMock.ts';
import { UserProfileHarryMappedMock } from '$mocks/data/users/mapped/UserProfileHarryMappedMock.ts';
import { runQuery } from '$test/beds/query/runQuery.ts';
import { createQuery } from '@tanstack/svelte-query';
import { describe, expect, it } from 'vitest';
import { listItemsQuery } from './listItemsQuery.ts';

describe('listItemsQuery', () => {
it('should query list items', async () => {
const result = await runQuery({
factory: () =>
createQuery(
listItemsQuery({
userId: UserProfileHarryMappedMock.slug,
listId: assertDefined(SiloListsMappedMock.at(0)).slug,
}),
),
mapper: (response) => response?.data?.entries,
});

expect(result).to.deep.equal([
...ListedShowsMappedMock,
...ListedMoviesMappedMock,
]);
});

it('should query show list items', async () => {
const result = await runQuery({
factory: () =>
createQuery(
listItemsQuery({
userId: UserProfileHarryMappedMock.slug,
listId: assertDefined(SiloListsMappedMock.at(0)).slug,
type: 'show',
}),
),
mapper: (response) => response?.data?.entries,
});

expect(result).to.deep.equal(ListedShowsMappedMock);
});

it('should query movie list items', async () => {
const result = await runQuery({
factory: () =>
createQuery(
listItemsQuery({
userId: UserProfileHarryMappedMock.slug,
listId: assertDefined(HereticListsMappedMock.at(0)).slug,
type: 'movie',
}),
),
mapper: (response) => response?.data?.entries,
});

expect(result).to.deep.equal(ListedMoviesMappedMock);
});
});
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
import { assertDefined } from '$lib/utils/assert/assertDefined.ts';
import { SiloListsMappedMock } from '$mocks/data/summary/shows/silo/mapped/SiloListsMappedMock.ts';
import { UserProfileHarryMappedMock } from '$mocks/data/users/mapped/UserProfileHarryMappedMock.ts';
import { runQuery } from '$test/beds/query/runQuery.ts';
import { createQuery } from '@tanstack/svelte-query';
import { describe, expect, it } from 'vitest';
import { listSummaryQuery } from './listSummaryQuery.ts';

describe('listSummaryQuery', () => {
it('should query list summary', async () => {
const result = await runQuery({
factory: () =>
createQuery(
listSummaryQuery({
userId: UserProfileHarryMappedMock.slug,
listId: assertDefined(SiloListsMappedMock.at(0)).slug,
}),
),
mapper: (response) => response?.data,
});

expect(result).to.deep.equal(SiloListsMappedMock.at(0));
});
});
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
import type { ListedMovie } from '$lib/requests/queries/lists/listMovieItemsQuery.ts';
import { MovieMatrixMappedMock } from '$mocks/data/summary/movies/matrix/MovieMatrixMappedMock.ts';
import { MovieHereticMappedMock } from '$mocks/data/summary/movies/heretic/mapped/MovieHereticMappedMock.ts';

export const ListedMoviesMappedMock: ListedMovie[] = [
{
'entry': MovieMatrixMappedMock,
'entry': MovieHereticMappedMock,
'id': 1146014560,
'listedAt': new Date('2024-12-27T21:34:14.000Z'),
'notes': null,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { MovieMatrixResponseMock } from '$mocks/data/summary/movies/matrix/MovieMatrixResponseMock.ts';
import { MovieHereticResponseMock } from '$mocks/data/summary/movies/heretic/response/MovieHereticResponseMock.ts';
import type { ListedMovieResponse } from '@trakt/api';

export const ListedMoviesResponseMock: ListedMovieResponse[] = [
Expand All @@ -8,6 +8,6 @@ export const ListedMoviesResponseMock: ListedMovieResponse[] = [
'listed_at': '2024-12-27T21:34:14.000Z',
'notes': null,
'type': 'movie',
'movie': MovieMatrixResponseMock,
'movie': MovieHereticResponseMock,
},
];
42 changes: 42 additions & 0 deletions projects/client/src/mocks/handlers/users.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,12 @@
import { http, HttpResponse } from 'msw';

import { assertDefined } from '$lib/utils/assert/assertDefined.ts';
import { ListedMoviesResponseMock } from '$mocks/data/lists/response/ListedMoviesResponseMock.ts';
import { ListedShowsResponseMock } from '$mocks/data/lists/response/ListedShowsResponseMock.ts';
import { HereticListsMappedMock } from '$mocks/data/summary/movies/heretic/mapped/HereticListsMappedMock.ts';
import { SiloListsMappedMock } from '$mocks/data/summary/shows/silo/mapped/SiloListsMappedMock.ts';
import { SiloListsResponseMock } from '$mocks/data/summary/shows/silo/response/SiloListsResponseMock.ts';
import { UserProfileHarryMappedMock } from '$mocks/data/users/mapped/UserProfileHarryMappedMock.ts';
import { ExtendedUsersResponseMock } from '../data/users/response/ExtendedUserSettingsResponseMock.ts';
import { HistoryEpisodesResponseMock } from '../data/users/response/HistoryEpisodesResponseMock.ts';
import { HistoryMoviesResponseMock } from '../data/users/response/HistoryMoviesResponseMock.ts';
Expand Down Expand Up @@ -46,4 +53,39 @@ export const users = [
http.get('http://localhost/users/me/following/activities', () => {
return HttpResponse.json(SocialActivityResponseMock);
}),
http.get(
`http://localhost/users/${UserProfileHarryMappedMock.slug}/lists/${
assertDefined(SiloListsMappedMock.at(0)).slug
}`,
() => {
return HttpResponse.json(SiloListsResponseMock.at(0));
},
),
http.get(
`http://localhost/users/${UserProfileHarryMappedMock.slug}/lists/${
assertDefined(SiloListsMappedMock.at(0)).slug
}/items/movie,show*`,
() => {
return HttpResponse.json([
...ListedShowsResponseMock,
...ListedMoviesResponseMock,
]);
},
),
http.get(
`http://localhost/users/${UserProfileHarryMappedMock.slug}/lists/${
assertDefined(SiloListsMappedMock.at(0)).slug
}/items/show*`,
() => {
return HttpResponse.json(ListedShowsResponseMock);
},
),
http.get(
`http://localhost/users/${UserProfileHarryMappedMock.slug}/lists/${
assertDefined(HereticListsMappedMock.at(0)).slug
}/items/movie*`,
() => {
return HttpResponse.json(ListedMoviesResponseMock);
},
),
];

0 comments on commit ae2c9b9

Please sign in to comment.