diff --git a/utils/filter_users.test.js b/utils/filter_users.test.ts similarity index 72% rename from utils/filter_users.test.js rename to utils/filter_users.test.ts index 7bfc9f88ddf9..4af2b7cf38f9 100644 --- a/utils/filter_users.test.js +++ b/utils/filter_users.test.ts @@ -1,47 +1,47 @@ // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. // See LICENSE.txt for license information. -import {getUserOptionsFromFilter, searchUserOptionsFromFilter, isActive} from './filter_users'; +import {getUserOptionsFromFilter, searchUserOptionsFromFilter, isActive, FilterOptions} from './filter_users'; describe('filter_users', () => { describe('getUserOptionsFromFilter', () => { it('should return empty options in case of empty filter', () => { - const filters = getUserOptionsFromFilter(''); + const filters: FilterOptions = getUserOptionsFromFilter(''); expect(filters).toEqual({}); }); it('should return empty options in case of undefined', () => { - const filters = getUserOptionsFromFilter(undefined); + const filters: FilterOptions = getUserOptionsFromFilter(undefined); expect(filters).toEqual({}); }); it('should return role options in case of system_admin', () => { - const filters = getUserOptionsFromFilter('system_admin'); + const filters: FilterOptions = getUserOptionsFromFilter('system_admin'); expect(filters).toEqual({role: 'system_admin'}); }); it('should return inactive option in case of inactive', () => { - const filters = getUserOptionsFromFilter('inactive'); + const filters: FilterOptions = getUserOptionsFromFilter('inactive'); expect(filters).toEqual({inactive: true}); }); }); describe('searchUserOptionsFromFilter', () => { it('should return empty options in case of empty filter', () => { - const filters = searchUserOptionsFromFilter(''); + const filters: FilterOptions = searchUserOptionsFromFilter(''); expect(filters).toEqual({}); }); it('should return empty options in case of undefined', () => { - const filters = searchUserOptionsFromFilter(undefined); + const filters: FilterOptions = searchUserOptionsFromFilter(undefined); expect(filters).toEqual({}); }); it('should return role options in case of system_admin', () => { - const filters = searchUserOptionsFromFilter('system_admin'); + const filters: FilterOptions = searchUserOptionsFromFilter('system_admin'); expect(filters).toEqual({role: 'system_admin'}); }); it('should return allow_inactive option in case of inactive', () => { - const filters = searchUserOptionsFromFilter('inactive'); + const filters: FilterOptions = searchUserOptionsFromFilter('inactive'); expect(filters).toEqual({allow_inactive: true}); }); }); diff --git a/utils/filter_users.js b/utils/filter_users.ts similarity index 78% rename from utils/filter_users.js rename to utils/filter_users.ts index 4d2e10dcdd23..b6f87cd24512 100644 --- a/utils/filter_users.js +++ b/utils/filter_users.ts @@ -2,6 +2,7 @@ // See LICENSE.txt for license information. import {UserSearchOptions, UserListOptions, UserFilters} from 'utils/constants'; +export type FilterOptions = Record const NEVER = 0; // userSelectorOptionsFromFilter will convert a string UI filter to an options object @@ -9,14 +10,14 @@ const NEVER = 0; // Note: this is currently the same as getUserOptionsFromFilter but wrapped to be clear // that there are separate purposes (this can be used with both getProfiles and searchProfiles // selectors) -export function userSelectorOptionsFromFilter(filter) { +export function userSelectorOptionsFromFilter(filter: string | undefined): FilterOptions { return getUserOptionsFromFilter(filter); } // getUserOptionsFromFilter will convert a string UI filter to an options objects // for an API request to the get users endpoint -export function getUserOptionsFromFilter(filter) { - const options = {}; +export function getUserOptionsFromFilter(filter: string | undefined): FilterOptions { + const options: FilterOptions = {}; if (filter === UserFilters.SYSTEM_ADMIN) { options[UserListOptions.ROLE] = UserFilters.SYSTEM_ADMIN; } else if (filter === UserFilters.SYSTEM_GUEST) { @@ -29,8 +30,8 @@ export function getUserOptionsFromFilter(filter) { // searchUserOptionsFromFilter will convert a string UI filter to an options objects // for an API request to the search users endpoint -export function searchUserOptionsFromFilter(filter) { - const options = {}; +export function searchUserOptionsFromFilter(filter: string | undefined): FilterOptions { + const options: FilterOptions = {}; if (filter === UserFilters.SYSTEM_ADMIN) { options[UserSearchOptions.ROLE] = UserFilters.SYSTEM_ADMIN; } else if (filter === UserFilters.SYSTEM_GUEST) { @@ -42,6 +43,6 @@ export function searchUserOptionsFromFilter(filter) { } // isActive returns whether a user is active or not. -export function isActive(user) { +export function isActive(user: {delete_at: number}): boolean { return user.delete_at === NEVER; }