Fix bug where revert all reverted all ldap categories

This commit is contained in:
Marliana Lara 2020-12-11 15:48:51 -05:00
parent ba8cf1aaf2
commit c90a459837
No known key found for this signature in database
GPG Key ID: 38C73B40DFA809EE
3 changed files with 54 additions and 138 deletions

View File

@ -21,6 +21,15 @@ import useModal from '../../../../util/useModal';
import useRequest from '../../../../util/useRequest';
import { SettingsAPI } from '../../../../api';
function filterByPrefix(data, prefix) {
return Object.keys(data)
.filter(key => key.includes(prefix))
.reduce((obj, key) => {
obj[key] = data[key];
return obj;
}, {});
}
function LDAPEdit() {
const history = useHistory();
const { isModalOpen, toggleModal, closeModal } = useModal();
@ -44,8 +53,26 @@ function LDAPEdit() {
mergedData[key].value = data[key];
});
return mergedData;
}, [options]),
const allCategories = {
AUTH_LDAP_1_: filterByPrefix(mergedData, 'AUTH_LDAP_1_'),
AUTH_LDAP_2_: filterByPrefix(mergedData, 'AUTH_LDAP_2_'),
AUTH_LDAP_3_: filterByPrefix(mergedData, 'AUTH_LDAP_3_'),
AUTH_LDAP_4_: filterByPrefix(mergedData, 'AUTH_LDAP_4_'),
AUTH_LDAP_5_: filterByPrefix(mergedData, 'AUTH_LDAP_5_'),
AUTH_LDAP_: Object.assign({}, mergedData),
};
Object.keys({
...allCategories.AUTH_LDAP_1_,
...allCategories.AUTH_LDAP_2_,
...allCategories.AUTH_LDAP_3_,
...allCategories.AUTH_LDAP_4_,
...allCategories.AUTH_LDAP_5_,
}).forEach(keyToOmit => {
delete allCategories.AUTH_LDAP_[keyToOmit];
});
return allCategories[ldapCategory];
}, [options, ldapCategory]),
null
);

View File

@ -8,7 +8,6 @@ import {
} from '../../../../../testUtils/enzymeHelpers';
import mockAllOptions from '../../shared/data.allSettingOptions.json';
import mockLDAP from '../../shared/data.ldapSettings.json';
import mockLDAPDefault from '../../shared/data.ldapDefaultSettings.json';
import { SettingsProvider } from '../../../../contexts/Settings';
import { SettingsAPI } from '../../../../api';
import LDAPEdit from './LDAPEdit';
@ -110,7 +109,30 @@ describe('<LDAPEdit />', () => {
});
wrapper.update();
expect(SettingsAPI.updateAll).toHaveBeenCalledTimes(1);
expect(SettingsAPI.updateAll).toHaveBeenCalledWith(mockLDAPDefault);
expect(SettingsAPI.updateAll).toHaveBeenCalledWith({
AUTH_LDAP_BIND_DN: '',
AUTH_LDAP_BIND_PASSWORD: '',
AUTH_LDAP_CONNECTION_OPTIONS: {
OPT_NETWORK_TIMEOUT: 30,
OPT_REFERRALS: 0,
},
AUTH_LDAP_DENY_GROUP: null,
AUTH_LDAP_GROUP_SEARCH: [],
AUTH_LDAP_GROUP_TYPE: 'MemberDNGroupType',
AUTH_LDAP_GROUP_TYPE_PARAMS: {
member_attr: 'member',
name_attr: 'cn',
},
AUTH_LDAP_ORGANIZATION_MAP: {},
AUTH_LDAP_REQUIRE_GROUP: null,
AUTH_LDAP_SERVER_URI: '',
AUTH_LDAP_START_TLS: false,
AUTH_LDAP_TEAM_MAP: {},
AUTH_LDAP_USER_ATTR_MAP: {},
AUTH_LDAP_USER_DN_TEMPLATE: null,
AUTH_LDAP_USER_FLAGS_BY_GROUP: {},
AUTH_LDAP_USER_SEARCH: [],
});
});
test('should successfully send request to api on form submission', async () => {
@ -162,6 +184,7 @@ describe('<LDAPEdit />', () => {
},
});
});
test('should navigate to ldap default detail on successful submission', async () => {
await act(async () => {
wrapper.find('Form').invoke('onSubmit')();

View File

@ -1,134 +0,0 @@
{
"AUTH_LDAP_1_BIND_DN": "",
"AUTH_LDAP_1_BIND_PASSWORD": "",
"AUTH_LDAP_1_CONNECTION_OPTIONS": {
"OPT_NETWORK_TIMEOUT": 30,
"OPT_REFERRALS": 0
},
"AUTH_LDAP_1_DENY_GROUP": null,
"AUTH_LDAP_1_GROUP_SEARCH": [],
"AUTH_LDAP_1_GROUP_TYPE": "MemberDNGroupType",
"AUTH_LDAP_1_GROUP_TYPE_PARAMS": {
"member_attr": "member",
"name_attr": "cn"
},
"AUTH_LDAP_1_ORGANIZATION_MAP": {},
"AUTH_LDAP_1_REQUIRE_GROUP": null,
"AUTH_LDAP_1_SERVER_URI": "",
"AUTH_LDAP_1_START_TLS": false,
"AUTH_LDAP_1_TEAM_MAP": {},
"AUTH_LDAP_1_USER_ATTR_MAP": {},
"AUTH_LDAP_1_USER_DN_TEMPLATE": null,
"AUTH_LDAP_1_USER_FLAGS_BY_GROUP": {},
"AUTH_LDAP_1_USER_SEARCH": [],
"AUTH_LDAP_2_BIND_DN": "",
"AUTH_LDAP_2_BIND_PASSWORD": "",
"AUTH_LDAP_2_CONNECTION_OPTIONS": {
"OPT_NETWORK_TIMEOUT": 30,
"OPT_REFERRALS": 0
},
"AUTH_LDAP_2_DENY_GROUP": null,
"AUTH_LDAP_2_GROUP_SEARCH": [],
"AUTH_LDAP_2_GROUP_TYPE": "MemberDNGroupType",
"AUTH_LDAP_2_GROUP_TYPE_PARAMS": {
"member_attr": "member",
"name_attr": "cn"
},
"AUTH_LDAP_2_ORGANIZATION_MAP": {},
"AUTH_LDAP_2_REQUIRE_GROUP": null,
"AUTH_LDAP_2_SERVER_URI": "",
"AUTH_LDAP_2_START_TLS": false,
"AUTH_LDAP_2_TEAM_MAP": {},
"AUTH_LDAP_2_USER_ATTR_MAP": {},
"AUTH_LDAP_2_USER_DN_TEMPLATE": null,
"AUTH_LDAP_2_USER_FLAGS_BY_GROUP": {},
"AUTH_LDAP_2_USER_SEARCH": [],
"AUTH_LDAP_3_BIND_DN": "",
"AUTH_LDAP_3_BIND_PASSWORD": "",
"AUTH_LDAP_3_CONNECTION_OPTIONS": {
"OPT_NETWORK_TIMEOUT": 30,
"OPT_REFERRALS": 0
},
"AUTH_LDAP_3_DENY_GROUP": null,
"AUTH_LDAP_3_GROUP_SEARCH": [],
"AUTH_LDAP_3_GROUP_TYPE": "MemberDNGroupType",
"AUTH_LDAP_3_GROUP_TYPE_PARAMS": {
"member_attr": "member",
"name_attr": "cn"
},
"AUTH_LDAP_3_ORGANIZATION_MAP": {},
"AUTH_LDAP_3_REQUIRE_GROUP": null,
"AUTH_LDAP_3_SERVER_URI": "",
"AUTH_LDAP_3_START_TLS": false,
"AUTH_LDAP_3_TEAM_MAP": {},
"AUTH_LDAP_3_USER_ATTR_MAP": {},
"AUTH_LDAP_3_USER_DN_TEMPLATE": null,
"AUTH_LDAP_3_USER_FLAGS_BY_GROUP": {},
"AUTH_LDAP_3_USER_SEARCH": [],
"AUTH_LDAP_4_BIND_DN": "",
"AUTH_LDAP_4_BIND_PASSWORD": "",
"AUTH_LDAP_4_CONNECTION_OPTIONS": {
"OPT_NETWORK_TIMEOUT": 30,
"OPT_REFERRALS": 0
},
"AUTH_LDAP_4_DENY_GROUP": null,
"AUTH_LDAP_4_GROUP_SEARCH": [],
"AUTH_LDAP_4_GROUP_TYPE": "MemberDNGroupType",
"AUTH_LDAP_4_GROUP_TYPE_PARAMS": {
"member_attr": "member",
"name_attr": "cn"
},
"AUTH_LDAP_4_ORGANIZATION_MAP": {},
"AUTH_LDAP_4_REQUIRE_GROUP": null,
"AUTH_LDAP_4_SERVER_URI": "",
"AUTH_LDAP_4_START_TLS": false,
"AUTH_LDAP_4_TEAM_MAP": {},
"AUTH_LDAP_4_USER_ATTR_MAP": {},
"AUTH_LDAP_4_USER_DN_TEMPLATE": null,
"AUTH_LDAP_4_USER_FLAGS_BY_GROUP": {},
"AUTH_LDAP_4_USER_SEARCH": [],
"AUTH_LDAP_5_BIND_DN": "",
"AUTH_LDAP_5_BIND_PASSWORD": "",
"AUTH_LDAP_5_CONNECTION_OPTIONS": {
"OPT_NETWORK_TIMEOUT": 30,
"OPT_REFERRALS": 0
},
"AUTH_LDAP_5_DENY_GROUP": null,
"AUTH_LDAP_5_GROUP_SEARCH": [],
"AUTH_LDAP_5_GROUP_TYPE": "MemberDNGroupType",
"AUTH_LDAP_5_GROUP_TYPE_PARAMS": {
"member_attr": "member",
"name_attr": "cn"
},
"AUTH_LDAP_5_ORGANIZATION_MAP": {},
"AUTH_LDAP_5_REQUIRE_GROUP": null,
"AUTH_LDAP_5_SERVER_URI": "",
"AUTH_LDAP_5_START_TLS": false,
"AUTH_LDAP_5_TEAM_MAP": {},
"AUTH_LDAP_5_USER_ATTR_MAP": {},
"AUTH_LDAP_5_USER_DN_TEMPLATE": null,
"AUTH_LDAP_5_USER_FLAGS_BY_GROUP": {},
"AUTH_LDAP_5_USER_SEARCH": [],
"AUTH_LDAP_BIND_DN": "",
"AUTH_LDAP_BIND_PASSWORD": "",
"AUTH_LDAP_CONNECTION_OPTIONS": {
"OPT_NETWORK_TIMEOUT": 30,
"OPT_REFERRALS": 0
},
"AUTH_LDAP_DENY_GROUP": null,
"AUTH_LDAP_GROUP_SEARCH": [],
"AUTH_LDAP_GROUP_TYPE": "MemberDNGroupType",
"AUTH_LDAP_GROUP_TYPE_PARAMS": {
"member_attr": "member",
"name_attr": "cn"
},
"AUTH_LDAP_ORGANIZATION_MAP": {},
"AUTH_LDAP_REQUIRE_GROUP": null,
"AUTH_LDAP_SERVER_URI": "",
"AUTH_LDAP_START_TLS": false,
"AUTH_LDAP_TEAM_MAP": {},
"AUTH_LDAP_USER_ATTR_MAP": {},
"AUTH_LDAP_USER_DN_TEMPLATE": null,
"AUTH_LDAP_USER_FLAGS_BY_GROUP": {},
"AUTH_LDAP_USER_SEARCH": []
}