Test correct filters are returned from getDisplayedFilters

This commit is contained in:
Mark Kaylor 2023-04-11 16:47:57 +02:00
parent 5275d30ed8
commit 3c3139134a
2 changed files with 72 additions and 32 deletions

View File

@ -0,0 +1,42 @@
import getDisplayedFilters from '../utils/getDisplayedFilters';
const mockUsers = {
results: [
{
id: 1,
firstname: 'test',
lastname: 'tester',
username: null,
email: 'test@test.com',
},
{
id: 2,
firstname: 'test2',
lastname: 'tester2',
username: null,
email: 'test2@test.com',
},
],
};
describe('Audit Logs getDisplayedFilters', () => {
it('should return all filters when canReadUsers is true', () => {
const filters = getDisplayedFilters({
users: mockUsers,
formatMessage: jest.fn(({ defaultMessage }) => defaultMessage),
canReadUsers: true,
});
const filterNames = filters.map((filter) => filter.name);
expect(filterNames).toEqual(['action', 'date', 'user']);
});
it('should not return user filter when canReadUsers is false', () => {
const filters = getDisplayedFilters({
users: mockUsers,
formatMessage: jest.fn(({ defaultMessage }) => defaultMessage),
canReadUsers: false,
});
const filterNames = filters.map((filter) => filter.name);
expect(filterNames).toEqual(['action', 'date']);
});
});

View File

@ -13,27 +13,6 @@ const customOperators = [
];
const getDisplayedFilters = ({ formatMessage, users, canReadUsers }) => {
const getDisplaynameFromUser = (user) => {
if (user.username) {
return user.username;
}
if (user.firstname && user.lastname) {
return formatMessage(
{
id: 'Settings.permissions.auditLogs.user.fullname',
defaultMessage: '{firstname} {lastname}',
},
{
firstname: user.firstname,
lastname: user.lastname,
}
);
}
return user.email;
};
const actionOptions = Object.keys(actionTypes).map((action) => {
return {
label: formatMessage(
@ -47,16 +26,6 @@ const getDisplayedFilters = ({ formatMessage, users, canReadUsers }) => {
};
});
const userOptions =
users &&
users.results.map((user) => {
return {
label: getDisplaynameFromUser(user),
// Combobox expects a string value
customValue: user.id.toString(),
};
});
const filters = [
{
name: 'action',
@ -83,7 +52,36 @@ const getDisplayedFilters = ({ formatMessage, users, canReadUsers }) => {
},
];
if (canReadUsers) {
if (canReadUsers && users) {
const getDisplaynameFromUser = (user) => {
if (user.username) {
return user.username;
}
if (user.firstname && user.lastname) {
return formatMessage(
{
id: 'Settings.permissions.auditLogs.user.fullname',
defaultMessage: '{firstname} {lastname}',
},
{
firstname: user.firstname,
lastname: user.lastname,
}
);
}
return user.email;
};
const userOptions = users.results.map((user) => {
return {
label: getDisplaynameFromUser(user),
// Combobox expects a string value
customValue: user.id.toString(),
};
});
return [
...filters,
{