From 4e23d62d4f3714808af8b915caa5790900688526 Mon Sep 17 00:00:00 2001 From: "JUST.in DO IT" Date: Fri, 26 Aug 2022 14:28:48 -0700 Subject: [PATCH] fix(sqllab): missing zero values while copy-to-clipboard (#21153) --- superset-frontend/src/utils/common.js | 2 +- superset-frontend/src/utils/common.test.jsx | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/superset-frontend/src/utils/common.js b/superset-frontend/src/utils/common.js index 603ec7c54992..400a7d05e010 100644 --- a/superset-frontend/src/utils/common.js +++ b/superset-frontend/src/utils/common.js @@ -97,7 +97,7 @@ export function prepareCopyToClipboardTabularData(data, columns) { // JavaScript does not maintain the order of a mixed set of keys (i.e integers and strings) // the below function orders the keys based on the column names. const key = columns[j].name || columns[j]; - if (data[i][key]) { + if (key in data[i]) { row[j] = data[i][key]; } else { row[j] = data[i][parseFloat(key)]; diff --git a/superset-frontend/src/utils/common.test.jsx b/superset-frontend/src/utils/common.test.jsx index 6c73b1011cd9..571e493addbf 100644 --- a/superset-frontend/src/utils/common.test.jsx +++ b/superset-frontend/src/utils/common.test.jsx @@ -59,6 +59,16 @@ describe('utils/common', () => { 'lorem\tipsum\t\ndolor\tsit\tamet\n', ); }); + it('includes 0 values', () => { + const array = [ + { column1: 0, column2: 0 }, + { column1: 1, column2: -1, 0: 0 }, + ]; + const column = ['column1', 'column2', '0']; + expect(prepareCopyToClipboardTabularData(array, column)).toEqual( + '0\t0\t\n1\t-1\t0\n', + ); + }); }); describe('applyFormattingToTabularData', () => { it('does not mutate empty array', () => {