diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/formula/formula.test.tsx b/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/formula/formula.test.tsx index ef40e55a8dc5c..c4402277148c7 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/formula/formula.test.tsx +++ b/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/formula/formula.test.tsx @@ -194,6 +194,30 @@ describe('formula', () => { }); }); + it("should start with an empty formula if previous operation can't be converted", () => { + expect( + formulaOperation.buildColumn({ + previousColumn: { + ...layer.columns.col1, + dataType: 'date', + filter: { language: 'kuery', query: 'ABC: DEF' }, + }, + layer, + indexPattern, + }) + ).toEqual({ + label: 'Formula', + dataType: 'number', + operationType: 'formula', + isBucketed: false, + filter: undefined, + timeScale: undefined, + scale: 'ratio', + params: {}, + references: [], + }); + }); + it('it should move over explicit format param if set', () => { expect( formulaOperation.buildColumn({ diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/formula/generate.ts b/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/formula/generate.ts index 42f211cad2eb5..4be0df4f86c1b 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/formula/generate.ts +++ b/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/formula/generate.ts @@ -55,6 +55,9 @@ export function generateFormula( } else { if (previousColumn && 'sourceField' in previousColumn && previousColumn.dataType === 'number') { previousFormula += `${previousColumn.operationType}(${getSafeFieldName(previousColumn)}`; + } else { + // couldn't find formula function to call, exit early because adding args is going to fail anyway + return ''; } } const formulaNamedArgs = extractParamsForFormula(previousColumn, operationDefinitionMap);