diff --git a/public/app/features/admin/state/reducers.test.ts b/public/app/features/admin/state/reducers.test.ts index 7469892adaf..6200a29b8f9 100644 --- a/public/app/features/admin/state/reducers.test.ts +++ b/public/app/features/admin/state/reducers.test.ts @@ -10,8 +10,10 @@ import { userMappingInfoLoadedAction, userProfileLoadedAction, userSessionsLoadedAction, + userListAdminReducer, + queryChanged, } from './reducers'; -import { LdapState, LdapUser, UserAdminState, UserDTO } from 'app/types'; +import { LdapState, LdapUser, UserAdminState, UserDTO, UserListAdminState } from 'app/types'; const makeInitialLdapState = (): LdapState => ({ connectionInfo: [], @@ -29,6 +31,15 @@ const makeInitialUserAdminState = (): UserAdminState => ({ isLoading: true, }); +const makeInitialUserListAdminState = (): UserListAdminState => ({ + users: [], + query: '', + page: 0, + perPage: 50, + totalPages: 1, + showPaging: false, +}); + const getTestUserMapping = (): LdapUser => ({ info: { email: { cfgAttrValue: 'mail', ldapValue: 'user@localhost' }, @@ -261,3 +272,23 @@ describe('Edit Admin user page reducer', () => { }); }); }); + +describe('User List Admin reducer', () => { + describe('When query changed', () => { + it('should reset page to 0', () => { + const initialState = { + ...makeInitialUserListAdminState(), + page: 3, + }; + + reducerTester() + .givenReducer(userListAdminReducer, initialState) + .whenActionIsDispatched(queryChanged('test')) + .thenStateShouldEqual({ + ...makeInitialUserListAdminState(), + query: 'test', + page: 0, + }); + }); + }); +}); diff --git a/public/app/features/admin/state/reducers.ts b/public/app/features/admin/state/reducers.ts index f190f79f823..5151bce867c 100644 --- a/public/app/features/admin/state/reducers.ts +++ b/public/app/features/admin/state/reducers.ts @@ -156,6 +156,7 @@ export const userListAdminSlice = createSlice({ queryChanged: (state, action: PayloadAction) => ({ ...state, query: action.payload, + page: 0, }), pageChanged: (state, action: PayloadAction) => ({ ...state,