{"ScriptPreparationCode":"function destructuringFn(input) {\r\n const { contextMenu: { data: { documents = [] } = {} } = {} } = input;\r\n return documents;\r\n}\r\n\r\nfunction destructuringFnDynamic(input, key) {\r\n const { contextMenu: { data: { [key]: documents = [] } = {} } = {} } = input;\r\n return documents;\r\n}\r\n\r\nfunction lodashFn(input) {\r\n const documents = _.get(input, \u0027contextMenu.data.documents\u0027, []);\r\n return documents;\r\n}\r\n\r\nfunction lodashFnDynamic(input, key) {\r\n const documents = _.get(input, \u0060contextMenu.data.${key}\u0060, []);\r\n return documents;\r\n}\r\n\r\nfunction optionalChainFn() {\r\n const input = { contextMenu: { data: { documents: [\u0022data\u0022] }}};\r\n return input?.contextMenu?.data?.documents;\r\n}\r\n \r\nfunction optionalChainFnDynamic(key) {\r\n const input = { contextMenu: { data: { documents: [\u0022data\u0022] }}};\r\n return input?.contextMenu?.data?.[key];\r\n}\r\n\r\nfunction lodashGetFn() {\r\n const input = { contextMenu: { data: { documents: [\u0022data\u0022] }}};\r\n const documents = _.get(input, \u0027contextMenu.data.documents\u0027, []);\r\n return documents;\r\n}\r\n\r\nfunction lodashGetFnDynamic(key) {\r\n const input = { contextMenu: { data: { documents: [\u0022data\u0022] }}};\r\n const documents = _.get(input, \u0060contextMenu.data[key]\u0060, []);\r\n return documents;\r\n}\r\n\r\nfunction test(fn, input, key) {\r\n fn(input, key);\r\n}","TestCases":[{"Name":"destructuring with defaults, empty input","Code":"test(destructuringFn, {});","IsDeferred":false},{"Name":"lodash get, empty input","Code":"test(lodashFn, {});","IsDeferred":false},{"Name":"destructuring with defaults, find item","Code":"const input = { contextMenu: { data: { documents: [{ id: \u0027doc\u0027 }] } } };\r\ntest(destructuringFn, input);","IsDeferred":false},{"Name":"lodash get, find item","Code":"const input = { contextMenu: { data: { documents: [{ id: \u0027doc\u0027 }] } } };\r\ntest(lodashFn, input);","IsDeferred":false},{"Name":"destructuring dynamic key","Code":"const input = { contextMenu: { data: { documents: [{ id: \u0027doc\u0027 }] } } };\r\ntest(destructuringFnDynamic, input, \u0027documents\u0027);","IsDeferred":false},{"Name":"lodash dynamic key","Code":"const input = { contextMenu: { data: { documents: [{ id: \u0027doc\u0027 }] } } };\r\ntest(lodashFnDynamic, input, \u0027documents\u0027);","IsDeferred":false},{"Name":"Optional chaining","Code":"test(optionalChainFn);","IsDeferred":false},{"Name":"lodash get","Code":"test(lodashGetFn);","IsDeferred":false},{"Name":"Optional chaining with dynamic key","Code":"test(optionalChainFnDynamic, \u0027documents\u0027);","IsDeferred":false},{"Name":"lodash get with dynamic key","Code":"test(lodashGetFnDynamic, \u0027documents\u0027);","IsDeferred":false}]}