fixes missing key values in ad hoc credental step advanced search

This commit is contained in:
Alex Corey
2021-07-06 16:34:47 -04:00
parent bc8e19b51d
commit 0a0c635de8
4 changed files with 48 additions and 7 deletions

View File

@@ -153,6 +153,10 @@ describe('<AdHocCommands />', () => {
count: 5, count: 5,
}, },
}); });
CredentialsAPI.readOptions.mockResolvedValue({
data: { actions: { GET: {} } },
});
ExecutionEnvironmentsAPI.read.mockResolvedValue({ ExecutionEnvironmentsAPI.read.mockResolvedValue({
data: { data: {
results: [ results: [
@@ -310,6 +314,10 @@ describe('<AdHocCommands />', () => {
count: 5, count: 5,
}, },
}); });
CredentialsAPI.readOptions.mockResolvedValue({
data: { actions: { GET: {} } },
});
ExecutionEnvironmentsAPI.read.mockResolvedValue({ ExecutionEnvironmentsAPI.read.mockResolvedValue({
data: { data: {
results: [ results: [

View File

@@ -127,6 +127,9 @@ describe('<AdHocCommandsWizard/>', () => {
count: 2, count: 2,
}, },
}); });
CredentialsAPI.readOptions.mockResolvedValue({
data: { actions: { GET: {} } },
});
await waitForElement(wrapper, 'WizardNavItem', el => el.length > 0); await waitForElement(wrapper, 'WizardNavItem', el => el.length > 0);
await act(async () => { await act(async () => {
@@ -246,6 +249,9 @@ describe('<AdHocCommandsWizard/>', () => {
}, },
}) })
); );
CredentialsAPI.readOptions.mockResolvedValue({
data: { actions: { GET: {} } },
});
await waitForElement(wrapper, 'WizardNavItem', el => el.length > 0); await waitForElement(wrapper, 'WizardNavItem', el => el.length > 0);
await act(async () => { await act(async () => {

View File

@@ -27,23 +27,45 @@ function AdHocCredentialStep({ credentialTypeId, onEnableLaunch }) {
error, error,
isLoading, isLoading,
request: fetchCredentials, request: fetchCredentials,
result: { credentials, credentialCount }, result: {
credentials,
credentialCount,
relatedSearchableKeys,
searchableKeys,
},
} = useRequest( } = useRequest(
useCallback(async () => { useCallback(async () => {
const params = parseQueryString(QS_CONFIG, history.location.search); const params = parseQueryString(QS_CONFIG, history.location.search);
const { const [
data: { results, count }, {
} = await CredentialsAPI.read( data: { results, count },
mergeParams(params, { credential_type: credentialTypeId }) },
); actionsResponse,
] = await Promise.all([
CredentialsAPI.read(
mergeParams(params, { credential_type: credentialTypeId })
),
CredentialsAPI.readOptions(),
]);
return { return {
credentials: results, credentials: results,
credentialCount: count, credentialCount: count,
relatedSearchableKeys: (
actionsResponse?.data?.related_search_fields || []
).map(val => val.slice(0, -8)),
searchableKeys: Object.keys(
actionsResponse.data.actions?.GET || {}
).filter(key => actionsResponse.data.actions?.GET[key].filterable),
}; };
}, [credentialTypeId, history.location.search]), }, [credentialTypeId, history.location.search]),
{ credentials: [], credentialCount: 0 } {
credentials: [],
credentialCount: 0,
relatedSearchableKeys: [],
searchableKeys: [],
}
); );
useEffect(() => { useEffect(() => {
@@ -84,6 +106,8 @@ function AdHocCredentialStep({ credentialTypeId, onEnableLaunch }) {
header={t`Machine Credential`} header={t`Machine Credential`}
readOnly readOnly
qsConfig={QS_CONFIG} qsConfig={QS_CONFIG}
relatedSearchableKeys={relatedSearchableKeys}
searchableKeys={searchableKeys}
searchColumns={[ searchColumns={[
{ {
name: t`Name`, name: t`Name`,

View File

@@ -23,6 +23,9 @@ describe('<AdHocCredentialStep />', () => {
count: 2, count: 2,
}, },
}); });
CredentialsAPI.readOptions.mockResolvedValue({
data: { actions: { GET: {} } },
});
await act(async () => { await act(async () => {
wrapper = mountWithContexts( wrapper = mountWithContexts(
<Formik> <Formik>