From 02a3c0d0e619d7c203889e383c97d6ffdc2ea891 Mon Sep 17 00:00:00 2001 From: "JUST.in DO IT" Date: Mon, 23 Jan 2023 13:44:02 -0800 Subject: [PATCH] fix(sqllab): type error on renderBigIntStr (#22813) --- .../FilterableTable/FilterableTable.test.tsx | 14 +++++++------- .../src/components/FilterableTable/index.tsx | 6 +++++- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/superset-frontend/src/components/FilterableTable/FilterableTable.test.tsx b/superset-frontend/src/components/FilterableTable/FilterableTable.test.tsx index 3135377cf7c2..8cef35078dd0 100644 --- a/superset-frontend/src/components/FilterableTable/FilterableTable.test.tsx +++ b/superset-frontend/src/components/FilterableTable/FilterableTable.test.tsx @@ -21,7 +21,7 @@ import { ReactWrapper } from 'enzyme'; import { styledMount as mount } from 'spec/helpers/theming'; import FilterableTable, { MAX_COLUMNS_FOR_TABLE, - renderBigIntStrToNumber, + convertBigIntStrToNumber, } from 'src/components/FilterableTable'; import { render, screen } from 'spec/helpers/testing-library'; import userEvent from '@testing-library/user-event'; @@ -334,17 +334,17 @@ describe('FilterableTable sorting - RTL', () => { }); test('renders bigInt value in a number format', () => { - expect(renderBigIntStrToNumber('123')).toBe('123'); - expect(renderBigIntStrToNumber('some string value')).toBe( + expect(convertBigIntStrToNumber('123')).toBe('123'); + expect(convertBigIntStrToNumber('some string value')).toBe( 'some string value', ); - expect(renderBigIntStrToNumber('{ a: 123 }')).toBe('{ a: 123 }'); - expect(renderBigIntStrToNumber('"Not a Number"')).toBe('"Not a Number"'); + expect(convertBigIntStrToNumber('{ a: 123 }')).toBe('{ a: 123 }'); + expect(convertBigIntStrToNumber('"Not a Number"')).toBe('"Not a Number"'); // trim quotes for bigint string format - expect(renderBigIntStrToNumber('"-12345678901234567890"')).toBe( + expect(convertBigIntStrToNumber('"-12345678901234567890"')).toBe( '-12345678901234567890', ); - expect(renderBigIntStrToNumber('"12345678901234567890"')).toBe( + expect(convertBigIntStrToNumber('"12345678901234567890"')).toBe( '12345678901234567890', ); }); diff --git a/superset-frontend/src/components/FilterableTable/index.tsx b/superset-frontend/src/components/FilterableTable/index.tsx index 4d9098b2c2a4..e7e8f3ebf4c6 100644 --- a/superset-frontend/src/components/FilterableTable/index.tsx +++ b/superset-frontend/src/components/FilterableTable/index.tsx @@ -63,13 +63,17 @@ function safeJsonObjectParse( } } -export function renderBigIntStrToNumber(value: string) { +export function convertBigIntStrToNumber(value: string | number) { if (typeof value === 'string' && /^"-?\d+"$/.test(value)) { return value.substring(1, value.length - 1); } return value; } +function renderBigIntStrToNumber(value: string | number) { + return <>{convertBigIntStrToNumber(value)}; +} + const GRID_POSITION_ADJUSTMENT = 4; const SCROLL_BAR_HEIGHT = 15; // This regex handles all possible number formats in javascript, including ints, floats,