UserListAdminPage: Reset page when changing filters (#47958)

This commit is contained in:
kay delaney 2022-04-20 16:02:33 +01:00 committed by GitHub
parent d0b41f882e
commit e19e934178
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 21 additions and 0 deletions

View File

@ -12,6 +12,7 @@ import {
userSessionsLoadedAction,
userListAdminReducer,
queryChanged,
filterChanged,
} from './reducers';
import { LdapState, LdapUser, UserAdminState, UserDTO, UserListAdminState } from 'app/types';
@ -287,4 +288,22 @@ describe('User List Admin reducer', () => {
});
});
});
describe('When filter changed', () => {
it('should reset page to 0', () => {
const initialState = {
...makeInitialUserListAdminState(),
page: 3,
};
reducerTester<UserListAdminState>()
.givenReducer(userListAdminReducer, initialState)
.whenActionIsDispatched(filterChanged({ test: true }))
.thenStateShouldEqual({
...makeInitialUserListAdminState(),
page: 0,
filters: expect.arrayContaining([{ test: true }]),
});
});
});
});

View File

@ -178,11 +178,13 @@ export const userListAdminSlice = createSlice({
if (state.filters.some((filter) => filter.name === name)) {
return {
...state,
page: 0,
filters: state.filters.map((filter) => (filter.name === name ? { ...filter, value } : filter)),
};
}
return {
...state,
page: 0,
filters: [...state.filters, action.payload],
};
},