Skip to content

Commit

Permalink
refactor: cleanup
Browse files Browse the repository at this point in the history
  • Loading branch information
anshg1214 committed Aug 15, 2024
1 parent 84efb65 commit a6b0436
Show file tree
Hide file tree
Showing 4 changed files with 97 additions and 147 deletions.
57 changes: 27 additions & 30 deletions frontend/js/tests/user/stats/UserArtistMap.test.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,20 @@ const reactQueryWrapper = ({ children }: any) => (
<QueryClientProvider client={queryClient}>{children}</QueryClientProvider>
);

const setQueryData = (
userName: string | undefined,
range: string,
data: any
) => {
const queryKey = ["user-stats-map", range, userName];
queryClient.ensureQueryData({
queryKey,
queryFn: () => {
return data;
},
});
};

describe.each([
["User Stats", userProps],
["Sitewide Stats", sitewideProps],
Expand All @@ -66,16 +80,10 @@ describe.each([
});

it("renders correctly", async () => {
const queryKey = ["user-stats-map", "week", props.user?.name];
queryClient.ensureQueryData({
queryKey,
queryFn: () => {
return {
data: userArtistMapResponse,
hasError: false,
errorMessage: "",
};
},
setQueryData(props.user?.name, "week", {
data: userArtistMapResponse,
hasError: false,
errorMessage: "",
});
renderWithProviders(
<UserArtistMap {...props} />,
Expand All @@ -98,16 +106,10 @@ describe.each([
// eslint-disable-next-line jest/no-disabled-tests
xit("displays error message when API call fails", async () => {
const errorMessage = "API Error";
const queryKey = ["user-stats-map", "week", props.user?.name];
queryClient.ensureQueryData({
queryKey,
queryFn: () => {
return {
data: {},
hasError: true,
errorMessage,
};
},
setQueryData(props.user?.name, "week", {
data: {},
hasError: true,
errorMessage,
});

renderWithProviders(
Expand All @@ -128,17 +130,12 @@ describe.each([
});

it("renders choropleth with processed data", async () => {
const queryKey = ["user-stats-map", "week", props.user?.name];
queryClient.ensureQueryData({
queryKey,
queryFn: () => {
return {
data: userArtistMapResponse,
hasError: false,
errorMessage: "",
};
},
setQueryData(props.user?.name, "week", {
data: userArtistMapResponse,
hasError: false,
errorMessage: "",
});

renderWithProviders(
<UserArtistMap {...props} />,
{},
Expand Down
2 changes: 1 addition & 1 deletion frontend/js/tests/user/stats/UserDailyActivity.test.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ const queryClient = new QueryClient({
},
});
const queryKey = ["userDailyActivity", props.user.name, "week"];
// preload data

const reactQueryWrapper = ({ children }: any) => (
<QueryClientProvider client={queryClient}>{children}</QueryClientProvider>
);
Expand Down
85 changes: 34 additions & 51 deletions frontend/js/tests/user/stats/UserListeningActivity.test.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,20 @@ const reactQueryWrapper = ({ children }: any) => (
<QueryClientProvider client={queryClient}>{children}</QueryClientProvider>
);

const setQueryData = (
userName: string | undefined,
range: string,
data: any
) => {
const queryKey = ["userListeningActivity", userName, range];
queryClient.ensureQueryData({
queryKey,
queryFn: () => {
return data;
},
});
};

const getResponse = (range: string) => {
let response;
switch (range) {
Expand Down Expand Up @@ -91,16 +105,10 @@ describe.each([
server.close();
});
it("renders correctly for week", async () => {
const queryKey = ["userListeningActivity", props.user?.name, "week"];
queryClient.ensureQueryData({
queryKey,
queryFn: () => {
return {
data: userListeningActivityResponseWeek,
hasError: false,
errorMessage: "",
};
},
setQueryData(props.user?.name, "week", {
data: userListeningActivityResponseWeek,
hasError: false,
errorMessage: "",
});

renderWithProviders(
Expand All @@ -125,16 +133,10 @@ describe.each([
});

it("renders correctly for month", async () => {
const queryKey = ["userListeningActivity", props.user?.name, "month"];
queryClient.ensureQueryData({
queryKey,
queryFn: () => {
return {
data: userListeningActivityResponseMonth,
hasError: false,
errorMessage: "",
};
},
setQueryData(props.user?.name, "month", {
data: userListeningActivityResponseMonth,
hasError: false,
errorMessage: "",
});

renderWithProviders(
Expand All @@ -159,16 +161,10 @@ describe.each([
});

it("renders correctly for year", async () => {
const queryKey = ["userListeningActivity", props.user?.name, "year"];
queryClient.ensureQueryData({
queryKey,
queryFn: () => {
return {
data: userListeningActivityResponseYear,
hasError: false,
errorMessage: "",
};
},
setQueryData(props.user?.name, "year", {
data: userListeningActivityResponseYear,
hasError: false,
errorMessage: "",
});

renderWithProviders(
Expand All @@ -193,16 +189,10 @@ describe.each([
});

it("renders correctly for all_time", async () => {
const queryKey = ["userListeningActivity", props.user?.name, "all_time"];
queryClient.ensureQueryData({
queryKey,
queryFn: () => {
return {
data: userListeningActivityResponseAllTime,
hasError: false,
errorMessage: "",
};
},
setQueryData(props.user?.name, "all_time", {
data: userListeningActivityResponseAllTime,
hasError: false,
errorMessage: "",
});

renderWithProviders(
Expand All @@ -228,18 +218,11 @@ describe.each([

it("displays error message when API call fails", async () => {
const errorMessage = "API Error";
const queryKey = ["userListeningActivity", props.user?.name, "week"];
queryClient.ensureQueryData({
queryKey,
queryFn: () => {
return {
data: {},
hasError: true,
errorMessage,
};
},
setQueryData(props.user?.name, "week", {
data: {},
hasError: true,
errorMessage,
});

renderWithProviders(
<ResponsiveContext.Provider value={{ width: 800 }}>
<UserListeningActivity {...props} />
Expand Down
100 changes: 35 additions & 65 deletions frontend/js/tests/user/stats/UserTopEntity.test.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,21 @@ const reactQueryWrapper = ({ children }: any) => (
<QueryClientProvider client={queryClient}>{children}</QueryClientProvider>
);

const setQueryData = (
userName: string | undefined,
entity: Entity,
range: string,
data: any
) => {
const queryKey = ["user-top-entity", entity, range, userName];
queryClient.ensureQueryData({
queryKey,
queryFn: () => {
return data;
},
});
};

describe.each([
["User Stats", userProps],
["Sitewide Stats", sitewideProps],
Expand Down Expand Up @@ -83,17 +98,10 @@ describe.each([
queryClient.clear();
});
it("renders correctly for artist", async () => {
const queryKey = ["user-top-entity", "artist", "week", props.user?.name];
queryClient.ensureQueryData({
queryKey,
queryFn: () => {
return {
data: userArtists,
loading: false,
hasError: false,
errorMessage: "",
};
},
setQueryData(props.user?.name, "artist", "week", {
data: userArtists,
hasError: false,
errorMessage: "",
});
renderWithProviders(
<UserTopEntity {...props} />,
Expand All @@ -113,17 +121,10 @@ describe.each([
});

it("renders correctly for release", async () => {
const queryKey = ["user-top-entity", "release", "week", props.user?.name];
queryClient.ensureQueryData({
queryKey,
queryFn: () => {
return {
data: userReleases,
loading: false,
hasError: false,
errorMessage: "",
};
},
setQueryData(props.user?.name, "release", "week", {
data: userReleases,
hasError: false,
errorMessage: "",
});
renderWithProviders(
<UserTopEntity {...props} entity="release" terminology="release" />,
Expand All @@ -143,22 +144,10 @@ describe.each([
});

it("renders correctly for release group", async () => {
const queryKey = [
"user-top-entity",
"release-group",
"week",
props.user?.name,
];
queryClient.ensureQueryData({
queryKey,
queryFn: () => {
return {
data: userReleaseGroups,
loading: false,
hasError: false,
errorMessage: "",
};
},
setQueryData(props.user?.name, "release-group", "week", {
data: userReleaseGroups,
hasError: false,
errorMessage: "",
});
renderWithProviders(
<UserTopEntity
Expand All @@ -184,22 +173,10 @@ describe.each([
});

it("renders correctly for recording", async () => {
const queryKey = [
"user-top-entity",
"recording",
"week",
props.user?.name,
];
queryClient.ensureQueryData({
queryKey,
queryFn: () => {
return {
data: userRecordings,
loading: false,
hasError: false,
errorMessage: "",
};
},
setQueryData(props.user?.name, "recording", "week", {
data: userRecordings,
hasError: false,
errorMessage: "",
});
renderWithProviders(
<UserTopEntity {...props} entity="recording" terminology="track" />,
Expand All @@ -220,17 +197,10 @@ describe.each([

it("displays error message when API call fails", async () => {
const errorMessage = "API Error";

queryClient.ensureQueryData({
queryKey: ["user-top-entity", "artist", "week", props.user?.name],
queryFn: () => {
return {
data: {},
hasError: true,
errorMessage,
loading: false,
};
},
setQueryData(props.user?.name, "artist", "week", {
data: {},
hasError: true,
errorMessage,
});

renderWithProviders(
Expand Down

0 comments on commit a6b0436

Please sign in to comment.