Test Reducers

Tests
Louison PARANT 2 years ago
parent 7eb142edb7
commit c3b7895479

@ -1,7 +1,7 @@
import Movie from "../../model/Movie"; import Movie from "../../model/Movie"
import {describe, expect} from '@jest/globals'; import {describe, expect} from '@jest/globals'
import {addMovieToFavourite, addMovieToWatchLater, removeMovieTrending, setFavourite, setinfoMovie, setWatchLater} from "../../redux/actions/actions"; import {addMovieToFavourite, addMovieToWatchLater, removeMovieTrending, setFavourite, setinfoMovie, setWatchLater} from "../../redux/actions/actions"
import {ADD_FAVOURITE, ADD_WATCHLATER, FETCH_TRENDING_MOVIE, LOAD_FAVOURITE, LOAD_WATCHLATER, POP_FIRST_TRENDING} from "../../redux/constants"; import {ADD_FAVOURITE, ADD_WATCHLATER, FETCH_TRENDING_MOVIE, LOAD_FAVOURITE, LOAD_WATCHLATER, POP_FIRST_TRENDING} from "../../redux/constants"
describe('test actions add WatchLater', () => { describe('test actions add WatchLater', () => {

@ -1,36 +1,89 @@
import Movie from "../../model/Movie"; import Movie from "../../model/Movie"
import {describe, expect, test} from '@jest/globals'; import {describe, expect, test} from '@jest/globals'
import {addMovieToWatchLater} from "../../redux/actions/actions"; import appReducer from "../../redux/reducers/appReducer"
import {ADD_FAVOURITE, ADD_WATCHLATER, FETCH_TRENDING_MOVIE, LOAD_FAVOURITE, LOAD_WATCHLATER, POP_FIRST_TRENDING} from "../../redux/constants"
describe('test actions add WatchLater', () => { describe('test null', () => {
it('should create an action with ADD_WATCHLATER type', () => { let initialState = {
const payload = new Movie( trendingIDs: [],
121, trendingMovies: [],
"Suzume", watchLaterMovies: [],
"https://image.tmdb.org/t/p/original/ceYZCBfwbBwSpGJ6PapNVw5jqLG.jpg", favouriteMovies: [],
916224, }
8.311,
"2022-11-11",
[
"Animation",
"Drame",
"Aventure",
"Fantastique",
],
it('should return initial state', () => {
expect(appReducer(undefined, {})).toEqual(initialState)
})
})
describe('test ADD_FAVOURITE', () => {
let initialState = {
trendingIDs: [],
trendingMovies: [],
watchLaterMovies: [],
favouriteMovies: [],
}
"Dans une petite ville paisible de Kyushu, une jeune fille de 17 ans, Suzume, rencontre un homme qui dit voyager afin de chercher une porte. Décidant de le suivre dans les montagnes, elle découvre une unique porte délabrée trônant au milieu des ruines, seul vestige ayant survécu au passage du temps. Cédant à une inexplicable impulsion, Suzume tourne la poignée, et d'autres portes s'ouvrent alors aux quatre coins du Japon, laissant entrer toutes les catastrophes qu'elles renferment. L'homme est formel : toute porte ouverte doit être fermée. Là où elle s'est égarée se trouvent les étoiles, le crépuscule et l'aube, une voûte céleste où tous les temps se confondent. Guidée par des portes nimbées de mystère, Suzume entame un périple en vue de toutes les refermer.", it('should handle ADD_FAVOURITE', () => {
"https://image.tmdb.org/t/p/w780/hOJYwkVSgXtE3BJFN0bRPKdLJLj.jpg", const favourite = new Movie(1, "Test", "", 1, 5, "2023", ["Halloween"], "", "")
expect(
appReducer(initialState, {
type: ADD_FAVOURITE,
payload: favourite,
})
).toEqual({
trendingIDs: [],
trendingMovies: [],
watchLaterMovies: [],
favouriteMovies: [favourite, ...initialState.favouriteMovies],
})
})
})
describe('test ADD_WATCHLATER', () => {
) let initialState = {
const expectation = { trendingIDs: [],
type: 'ADD_WATCHLATER', trendingMovies: [],
nounours: payload, watchLaterMovies: [],
}; favouriteMovies: [],
}
expect(addMovieToWatchLater(payload)).toEqual(expectation); it('should handle ADD_WATCHLATER', () => {
}); const watchLater = new Movie(1, "Test", "", 1, 5, "2023", ["Halloween"], "", "")
expect(
appReducer(initialState, {
type: ADD_WATCHLATER,
payload: watchLater,
})
).toEqual({
trendingIDs: [],
trendingMovies: [],
watchLaterMovies: [watchLater, ...initialState.watchLaterMovies],
favouriteMovies: [],
})
})
}) })
/*
case LOAD_WATCHLATER:
// @ts-ignore
return {...state, watchLaterMovies: action.payload};
case LOAD_FAVOURITE:
// @ts-ignore
return {...state, favouriteMovies: action.payload};
case FETCH_TRENDING_ID:
// @ts-ignore
return {...state, trendingIDs: action.payload};
case FETCH_WATCHLATER:
// @ts-ignore
return {...state, watchLaterMovies: action.payload};
case FETCH_FAVOURITE:
// @ts-ignore
return {...state, favouriteMovies: action.payload};
case FETCH_TRENDING_MOVIE:
return {...state, trendingMovies: action.payload};
case POP_FIRST_TRENDING:
return {...state, trendingMovies: [...state.trendingMovies.filter((item: Movie) => item !== action.payload)]};
*/
Loading…
Cancel
Save