import { EXPLORE_ACTION, exploreReducer, } from "providers/ExploreContext"; import factory from "tests/factory"; describe( "ExploreContext", ( ) => { describe( "exploreReducer", ( ) => { describe( EXPLORE_ACTION.SET_PLACE, ( ) => { it( "should remove lat and lng when place set", ( ) => { const initialState = { lat: 1, lng: 1 }; const reducedState = exploreReducer( initialState, { type: EXPLORE_ACTION.SET_PLACE, place: factory( "RemotePlace" ), } ); expect( initialState.lat ).not.toBeUndefined( ); expect( initialState.lng ).not.toBeUndefined( ); expect( reducedState.lat ).toBeUndefined( ); expect( reducedState.lng ).toBeUndefined( ); } ); } ); describe( EXPLORE_ACTION.SET_MAP_BOUNDARIES, ( ) => { it( "should remove lat, lng, and radius", ( ) => { const initialState = { lat: 1, lng: 1, radius: 50 }; const reducedState = exploreReducer( initialState, { type: EXPLORE_ACTION.SET_MAP_BOUNDARIES, mapBoundaries: { swlat: 0, swlng: 0, nelat: 1, nelng: 1, place_guess: "somwhere", }, } ); expect( initialState.lat ).not.toBeUndefined( ); expect( initialState.lng ).not.toBeUndefined( ); expect( initialState.radius ).not.toBeUndefined( ); expect( reducedState.lat ).toBeUndefined( ); expect( reducedState.lng ).toBeUndefined( ); expect( reducedState.radius ).toBeUndefined( ); } ); } ); describe( EXPLORE_ACTION.CHANGE_TAXON, ( ) => { it( "should remove iconic_taxa", ( ) => { const taxon = factory( "RemoteTaxon" ); const initialState = { iconic_taxa: ["Animalia"] }; const reducedState = exploreReducer( initialState, { type: EXPLORE_ACTION.CHANGE_TAXON, taxon, taxonId: taxon.id, } ); expect( reducedState.iconic_taxa ).toBeUndefined( ); } ); it( "should extract an id from a taxon", ( ) => { const taxon = factory( "RemoteTaxon" ); const initialState = { }; const reducedState = exploreReducer( initialState, { type: EXPLORE_ACTION.CHANGE_TAXON, taxon, } ); expect( reducedState.taxon_id ).toEqual( taxon.id ); } ); it( "should remove an id from a blank taxon", ( ) => { const taxon = factory( "RemoteTaxon" ); const initialState = { taxon, taxon_id: taxon.id }; const reducedState = exploreReducer( initialState, { type: EXPLORE_ACTION.CHANGE_TAXON, taxon: null, } ); expect( reducedState.taxon_id ).toBeNull( ); } ); } ); } ); } );