1
1
mirror of https://github.com/n8n-io/n8n.git synced 2024-09-20 09:27:44 +03:00

🐛 Fix issue with FixedCollection

This commit is contained in:
Jan Oberhauser 2019-10-04 12:33:23 +02:00
parent 3ed6acd58a
commit 888f01b343
2 changed files with 141 additions and 1 deletions

View File

@ -145,7 +145,9 @@ export default mixins(genericHelpers)
const newParameterValue: INodeParameters = {};
for (const optionParameter of option.values) {
if (optionParameter.typeOptions !== undefined && optionParameter.typeOptions.multipleValues === true) {
if (optionParameter.type === 'fixedCollection' && optionParameter.typeOptions.multipleValues === true) {
newParameterValue[optionParameter.name] = {};
} else if (optionParameter.typeOptions !== undefined && optionParameter.typeOptions.multipleValues === true) {
// Multiple values are allowed so append option to array
newParameterValue[optionParameter.name] = get(this.nodeValues, `${this.path}.${optionParameter.name}`, []);
(newParameterValue[optionParameter.name] as INodeParameters[]).push(JSON.parse(JSON.stringify(optionParameter.default)));

View File

@ -2676,6 +2676,144 @@ describe('Workflow', () => {
},
},
},
{
description: 'complex type "fixedCollection" with "multipleValues: true". Which contains complex type "fixedCollection" with "multipleValues: true". One value set.',
input: {
nodePropertiesArray: [
{
displayName: 'Values1',
name: 'values1',
type: 'fixedCollection',
typeOptions: {
multipleValues: true,
},
description: 'The value to set.',
default: {},
options: [
{
displayName: 'Options1',
name: 'options1',
values: [
{
displayName: 'Values2',
name: 'values2',
type: 'fixedCollection',
typeOptions: {
multipleValues: true,
},
description: 'The value to set.',
default: {},
options: [
{
displayName: 'Options2',
name: 'options2',
values: [
{
name: 'string1',
displayName: 'string1',
type: 'string',
default: 'default string1',
},
{
name: 'number1',
displayName: 'number1',
type: 'number',
default: 0,
},
],
},
],
},
],
},
],
},
],
nodeValues: {
values1: {
options1: [
{
values2: {
options2: [
{
number1: 1,
},
],
},
},
],
},
},
},
output: {
noneDisplayedFalse: {
defaultsFalse: {
values1: {
options1: [
{
values2: {
options2: [
{
number1: 1,
},
],
},
},
],
},
},
defaultsTrue: {
values1: {
options1: [
{
values2: {
options2: [
{
string1: 'default string1',
number1: 1,
},
],
},
},
],
},
},
},
noneDisplayedTrue: {
defaultsFalse: {
values1: {
options1: [
{
values2: {
options2: [
{
number1: 1,
},
],
},
},
],
},
},
defaultsTrue: {
values1: {
options1: [
{
values2: {
options2: [
{
string1: 'default string1',
number1: 1,
},
],
},
},
],
},
},
},
},
},
];