fix: Load remote resources even if expressions in non requried parameters resolve (#6987)

Github issue / Community forum post (link here to close automatically):
This commit is contained in:
Mutasem Aldmour
2023-08-31 16:40:20 +02:00
committed by GitHub
parent 8cd4db0ab7
commit 8a8d4e8bb3
18 changed files with 478 additions and 25 deletions

View File

@@ -888,7 +888,8 @@ export default defineComponent({
if (
this.node === null ||
this.hasRemoteMethod === false ||
this.remoteParameterOptionsLoading
this.remoteParameterOptionsLoading ||
!this.parameter
) {
return;
}
@@ -900,7 +901,8 @@ export default defineComponent({
try {
const currentNodeParameters = (this.ndvStore.activeNode as INodeUi).parameters;
const resolvedNodeParameters = this.resolveParameter(
const resolvedNodeParameters = this.resolveRequiredParameters(
this.parameter,
currentNodeParameters,
) as INodeParameters;
const loadOptionsMethod = this.getArgument('loadOptionsMethod') as string | undefined;

View File

@@ -1,5 +1,5 @@
<template>
<div :class="$style['parameter-issues']" v-if="issues.length">
<div :class="$style['parameter-issues']" data-test-id="parameter-issues" v-if="issues.length">
<n8n-tooltip placement="top">
<template #content>
<titled-list :title="`${$locale.baseText('parameterInput.issues')}:`" :items="issues" />

View File

@@ -681,7 +681,10 @@ export default defineComponent({
});
}
const resolvedNodeParameters = this.resolveParameter(params.parameters) as INodeParameters;
const resolvedNodeParameters = this.resolveRequiredParameters(
this.parameter,
params.parameters,
) as INodeParameters;
const loadOptionsMethod = this.getPropertyArgument(this.currentMode, 'searchListMethod') as
| string
| undefined;

View File

@@ -18,6 +18,7 @@
@update:modelValue="onFilterInput"
ref="search"
:placeholder="$locale.baseText('resourceLocator.search.placeholder')"
data-test-id="rlc-search"
>
<template #prefix>
<font-awesome-icon :class="$style.searchIcon" icon="search" />
@@ -47,6 +48,7 @@
[$style.selected]: result.value === modelValue,
[$style.hovering]: hoverIndex === i,
}"
data-test-id="rlc-item"
@click="() => onItemClick(result.value)"
@mouseenter="() => onItemHover(i)"
@mouseleave="() => onItemHoverLeave()"

View File

@@ -1,6 +1,6 @@
<script setup lang="ts">
import type { IUpdateInformation, ResourceMapperReqParams } from '@/Interface';
import { resolveParameter } from '@/mixins/workflowHelpers';
import { resolveRequiredParameters } from '@/mixins/workflowHelpers';
import { useNodeTypesStore } from '@/stores/nodeTypes.store';
import type {
INode,
@@ -229,7 +229,10 @@ async function loadFieldsToMap(): Promise<void> {
name: props.node?.type,
version: props.node.typeVersion,
},
currentNodeParameters: resolveParameter(props.node.parameters) as INodeParameters,
currentNodeParameters: resolveRequiredParameters(
props.parameter,
props.node.parameters,
) as INodeParameters,
path: props.path,
methodName: props.parameter.typeOptions?.resourceMapper?.resourceMapperMethod,
credentials: props.node.credentials,

View File

@@ -26,7 +26,7 @@ describe('ResourceMapper.vue', () => {
.spyOn(nodeTypeStore, 'getResourceMapperFields')
.mockResolvedValue(MAPPING_COLUMNS_RESPONSE);
resolveParameterSpy = vi
.spyOn(workflowHelpers, 'resolveParameter')
.spyOn(workflowHelpers, 'resolveRequiredParameters')
.mockReturnValue(NODE_PARAMETER_VALUES);
});