Move Filter related tests in original pokedexApi.test.ts into filterApi.test.ts
parent
1d58f41b5f
commit
db331acbb1
|
@ -0,0 +1,38 @@
|
||||||
|
import { pokedexSlice } from 'features/Pokedex/pokedexSlice';
|
||||||
|
import { filterApi } from './filterApi';
|
||||||
|
import { filterSlice } from './filterSlice';
|
||||||
|
import { configureStore } from '@reduxjs/toolkit';
|
||||||
|
|
||||||
|
import { AppStore } from 'app/store';
|
||||||
|
import { listenerMiddleware } from 'app/listenerMiddleware';
|
||||||
|
import { TypeListResponseData } from 'features/Pokedex/types/api';
|
||||||
|
|
||||||
|
let store: AppStore;
|
||||||
|
|
||||||
|
describe('filterApi', () => {
|
||||||
|
beforeEach(() => {
|
||||||
|
store = configureStore({
|
||||||
|
reducer: {
|
||||||
|
pokedex: pokedexSlice.reducer,
|
||||||
|
filter: filterSlice.reducer,
|
||||||
|
[filterApi.reducerPath]: filterApi.reducer,
|
||||||
|
},
|
||||||
|
middleware: getDefaultMiddleware =>
|
||||||
|
getDefaultMiddleware().concat(
|
||||||
|
filterApi.middleware,
|
||||||
|
listenerMiddleware.middleware,
|
||||||
|
),
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
describe('JEST test against mock API', () => {
|
||||||
|
test('visit https://pokeapi.co/api/v2/type should return correct data in list', async () => {
|
||||||
|
await store.dispatch(filterApi.endpoints.getTypeList.initiate());
|
||||||
|
|
||||||
|
const typeListData = filterApi.endpoints.getTypeList.select()(
|
||||||
|
store.getState(),
|
||||||
|
).data as TypeListResponseData;
|
||||||
|
expect(typeListData?.results).toHaveLength(typeListData.count + 1);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
|
@ -1,122 +0,0 @@
|
||||||
import { pokedexApi } from 'features/Pokedex/pokedexApi';
|
|
||||||
import { pokedexSlice } from 'features/Pokedex/pokedexSlice';
|
|
||||||
import { configureStore } from '@reduxjs/toolkit';
|
|
||||||
import region1 from 'features/Pokedex/__test__/responses/region1.json';
|
|
||||||
import pokemon1 from 'features/Pokedex/__test__/responses/pokemon1.json';
|
|
||||||
import { RegionListResponseData, TypeListResponseData } from '../types/api';
|
|
||||||
import { AppStore } from 'app/store';
|
|
||||||
import { listenerMiddleware } from 'app/listenerMiddleware';
|
|
||||||
|
|
||||||
let store: AppStore;
|
|
||||||
describe('pokedexApi', () => {
|
|
||||||
beforeEach(() => {
|
|
||||||
store = configureStore({
|
|
||||||
reducer: {
|
|
||||||
pokedex: pokedexSlice.reducer,
|
|
||||||
[pokedexApi.reducerPath]: pokedexApi.reducer,
|
|
||||||
},
|
|
||||||
middleware: getDefaultMiddleware =>
|
|
||||||
getDefaultMiddleware().concat(
|
|
||||||
pokedexApi.middleware,
|
|
||||||
listenerMiddleware.middleware,
|
|
||||||
),
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
describe('JEST test against real API', () => {
|
|
||||||
test('visit https://pokeapi.co/api/v2/region/1 should return correct data', async () => {
|
|
||||||
await store.dispatch(pokedexApi.endpoints.getRegion.initiate(1));
|
|
||||||
|
|
||||||
const region1Data = pokedexApi.endpoints.getRegion.select(1)(
|
|
||||||
store.getState(),
|
|
||||||
).data;
|
|
||||||
expect(region1Data).toEqual(region1);
|
|
||||||
});
|
|
||||||
|
|
||||||
test('visit https://pokeapi.co/api/v2/region/kanto should return correct data', async () => {
|
|
||||||
await store.dispatch(pokedexApi.endpoints.getRegion.initiate('kanto'));
|
|
||||||
|
|
||||||
const region1Data = pokedexApi.endpoints.getRegion.select('kanto')(
|
|
||||||
store.getState(),
|
|
||||||
).data;
|
|
||||||
expect(region1Data).toEqual(region1);
|
|
||||||
});
|
|
||||||
|
|
||||||
test('visit https://pokeapi.co/api/v2/pokemon/1 should return correct data', async () => {
|
|
||||||
await store.dispatch(pokedexApi.endpoints.getPokemon.initiate(1));
|
|
||||||
|
|
||||||
const region1Data = pokedexApi.endpoints.getPokemon.select(1)(
|
|
||||||
store.getState(),
|
|
||||||
).data;
|
|
||||||
expect(region1Data).toEqual(pokemon1);
|
|
||||||
});
|
|
||||||
|
|
||||||
test('visit https://pokeapi.co/api/v2/pokemon/bulbasaur should return correct data', async () => {
|
|
||||||
await store.dispatch(
|
|
||||||
pokedexApi.endpoints.getPokemon.initiate('bulbasaur'),
|
|
||||||
);
|
|
||||||
|
|
||||||
const region1Data = pokedexApi.endpoints.getPokemon.select('bulbasaur')(
|
|
||||||
store.getState(),
|
|
||||||
).data;
|
|
||||||
expect(region1Data).toEqual(pokemon1);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
describe('JEST test against mock API', () => {
|
|
||||||
test('visit https://pokeapi.co/api/v2/region/999999 should return correct data', async () => {
|
|
||||||
await store.dispatch(pokedexApi.endpoints.getRegion.initiate(999999));
|
|
||||||
|
|
||||||
const region1Data = pokedexApi.endpoints.getRegion.select(999999)(
|
|
||||||
store.getState(),
|
|
||||||
).data;
|
|
||||||
expect(region1Data).toEqual(region1);
|
|
||||||
});
|
|
||||||
|
|
||||||
test('visit https://pokeapi.co/api/v2/region/testregion should return correct data', async () => {
|
|
||||||
await store.dispatch(
|
|
||||||
pokedexApi.endpoints.getRegion.initiate('testregion'),
|
|
||||||
);
|
|
||||||
|
|
||||||
const region1Data = pokedexApi.endpoints.getRegion.select('testregion')(
|
|
||||||
store.getState(),
|
|
||||||
).data;
|
|
||||||
expect(region1Data).toEqual(region1);
|
|
||||||
});
|
|
||||||
|
|
||||||
test('visit https://pokeapi.co/api/v2/region should return correct data in list', async () => {
|
|
||||||
await store.dispatch(pokedexApi.endpoints.getRegionList.initiate());
|
|
||||||
|
|
||||||
const regionListData = pokedexApi.endpoints.getRegionList.select()(
|
|
||||||
store.getState(),
|
|
||||||
).data as RegionListResponseData;
|
|
||||||
expect(regionListData?.results).toHaveLength(regionListData.count);
|
|
||||||
});
|
|
||||||
|
|
||||||
test('visit https://pokeapi.co/api/v2/type should return correct data in list', async () => {
|
|
||||||
await store.dispatch(pokedexApi.endpoints.getTypeList.initiate());
|
|
||||||
|
|
||||||
const typeListData = pokedexApi.endpoints.getTypeList.select()(
|
|
||||||
store.getState(),
|
|
||||||
).data as TypeListResponseData;
|
|
||||||
expect(typeListData?.results).toHaveLength(typeListData.count + 1);
|
|
||||||
});
|
|
||||||
|
|
||||||
test('visit https://pokeapi.co/api/v2/pokemon should return correct data in list', async () => {
|
|
||||||
await store.dispatch(pokedexApi.endpoints.getPokemonList.initiate());
|
|
||||||
|
|
||||||
const pokemonListData = pokedexApi.endpoints.getPokemonList.select()(
|
|
||||||
store.getState(),
|
|
||||||
).data;
|
|
||||||
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
||||||
// @ts-ignore
|
|
||||||
expect(pokemonListData?.results).toHaveLength(pokemonListData.count);
|
|
||||||
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
||||||
// @ts-ignore
|
|
||||||
expect(pokemonListData?.next).toBeUndefined();
|
|
||||||
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
||||||
// @ts-ignore
|
|
||||||
expect(pokemonListData?.previous).toBeUndefined();
|
|
||||||
});
|
|
||||||
});
|
|
||||||
});
|
|
|
@ -2,7 +2,7 @@ import { rest } from 'msw';
|
||||||
|
|
||||||
import region1 from 'features/Pokedex/__test__/responses/region1.json';
|
import region1 from 'features/Pokedex/__test__/responses/region1.json';
|
||||||
import regionList from 'features/Pokedex/__test__/responses/regionList.json';
|
import regionList from 'features/Pokedex/__test__/responses/regionList.json';
|
||||||
import typeList from 'features/Pokedex/__test__/responses/typeList.json';
|
import typeList from 'features/Filters/__test__/responses/typeList.json';
|
||||||
import pokemonListPg1 from 'features/Pokedex/__test__/responses/pokemonListPage1.json';
|
import pokemonListPg1 from 'features/Pokedex/__test__/responses/pokemonListPage1.json';
|
||||||
import pokemonListPg2 from 'features/Pokedex/__test__/responses/pokemonListPage2.json';
|
import pokemonListPg2 from 'features/Pokedex/__test__/responses/pokemonListPage2.json';
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue