diff --git a/components/__tests__/reducers.test.ts b/components/__tests__/reducers.test.ts index 4c87609..faabeea 100644 --- a/components/__tests__/reducers.test.ts +++ b/components/__tests__/reducers.test.ts @@ -66,24 +66,111 @@ describe('test ADD_WATCHLATER', () => { }) }) }) + +describe('test LOAD_WATCHLATER', () => { + + let initialState = { + trendingIDs: [], + trendingMovies: [], + watchLaterMovies: [], + favouriteMovies: [], + } + + it('should handle LOAD_WATCHLATER', () => { + const watchLater = new Movie(1, "Test", "", 1, 5, "2023", ["Halloween"], "", "") + const MovieList = [watchLater] + expect( + appReducer(initialState, { + type: LOAD_WATCHLATER, + payload: MovieList, + }) + ).toEqual({ + trendingIDs: [], + trendingMovies: [], + watchLaterMovies: [watchLater, ...initialState.watchLaterMovies], + favouriteMovies: [], + }) + }) +}) + +describe('test LOAD_FAVOURITE', () => { + + let initialState = { + trendingIDs: [], + trendingMovies: [], + watchLaterMovies: [], + favouriteMovies: [], + } + + it('should handle LOAD_FAVOURITE', () => { + const favourite = new Movie(1, "Test", "", 1, 5, "2023", ["Halloween"], "", "") + const MovieList = [favourite] + expect( + appReducer(initialState, { + type: LOAD_FAVOURITE, + payload: MovieList, + }) + ).toEqual({ + trendingIDs: [], + trendingMovies: [], + watchLaterMovies: [], + favouriteMovies: [favourite, ...initialState.favouriteMovies], + }) + }) +}) + +describe('test FETCH_TRENDING_MOVIE', () => { + + let initialState = { + trendingIDs: [], + trendingMovies: [], + watchLaterMovies: [], + favouriteMovies: [], + } + + it('should handle FETCH_TRENDING_MOVIE', () => { + const trending = new Movie(1, "Test", "", 1, 5, "2023", ["Halloween"], "", "") + const MovieList = [trending] + expect( + appReducer(initialState, { + type: FETCH_TRENDING_MOVIE, + payload: MovieList, + }) + ).toEqual({ + trendingIDs: [], + trendingMovies: [trending, ...initialState.trendingMovies], + watchLaterMovies: [], + favouriteMovies: [], + }) + }) +}) + +describe('test POP_FIRST_TRENDING', () => { + + const trending = new Movie(1, "Test", "", 1, 5, "2023", ["Halloween"], "", "") + + let initialState = { + trendingIDs: [], + trendingMovies: [trending], + watchLaterMovies: [], + favouriteMovies: [], + } + + it('should handle POP_FIRST_TRENDING', () => { + expect( + appReducer(initialState, { + type: POP_FIRST_TRENDING, + payload: trending, + }) + ).toEqual({ + trendingIDs: [], + trendingMovies: [...initialState.trendingMovies.filter((item: Movie) => item !== trending)], + 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)]}; */ \ No newline at end of file