This is an automated email from the ASF dual-hosted git repository.

msyavuz pushed a commit to branch msyavuz/fix/smart-format
in repository https://gitbox.apache.org/repos/asf/superset.git

commit d133c6cb357ff015e94dbc93ef6ebddf133b4c15
Author: Mehmet Salih Yavuz <[email protected]>
AuthorDate: Mon Feb 16 19:54:20 2026 +0300

    chore: add tests
---
 .../test/utils/formatters.test.ts                  | 48 +++++++++++++++++++++-
 1 file changed, 46 insertions(+), 2 deletions(-)

diff --git 
a/superset-frontend/plugins/plugin-chart-echarts/test/utils/formatters.test.ts 
b/superset-frontend/plugins/plugin-chart-echarts/test/utils/formatters.test.ts
index daa15d9aa01..46ebf2e2394 100644
--- 
a/superset-frontend/plugins/plugin-chart-echarts/test/utils/formatters.test.ts
+++ 
b/superset-frontend/plugins/plugin-chart-echarts/test/utils/formatters.test.ts
@@ -16,8 +16,11 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-import { NumberFormats } from '@superset-ui/core';
-import { getPercentFormatter } from '../../src/utils/formatters';
+import { NumberFormats, SMART_DATE_ID, TimeFormatter } from 
'@superset-ui/core';
+import {
+  getPercentFormatter,
+  getXAxisFormatter,
+} from '../../src/utils/formatters';
 
 describe('getPercentFormatter', () => {
   const value = 0.6;
@@ -35,3 +38,44 @@ describe('getPercentFormatter', () => {
     ).toEqual('60.00%');
   });
 });
+
+describe('getXAxisFormatter', () => {
+  test('should return smart date formatter for SMART_DATE_ID format', () => {
+    const formatter = getXAxisFormatter(SMART_DATE_ID);
+    expect(formatter).toBeDefined();
+    expect(formatter).toBeInstanceOf(TimeFormatter);
+    expect((formatter as TimeFormatter).id).toBe(SMART_DATE_ID);
+  });
+
+  test('should return smart date formatter for undefined format', () => {
+    const formatter = getXAxisFormatter();
+    expect(formatter).toBeDefined();
+    expect(formatter).toBeInstanceOf(TimeFormatter);
+    expect((formatter as TimeFormatter).id).toBe(SMART_DATE_ID);
+  });
+
+  test('should return custom time formatter for custom format', () => {
+    const customFormat = '%Y-%m-%d';
+    const formatter = getXAxisFormatter(customFormat);
+    expect(formatter).toBeDefined();
+    expect(formatter).toBeInstanceOf(TimeFormatter);
+    expect((formatter as TimeFormatter).id).toBe(customFormat);
+  });
+
+  test('smart date formatter should be returned and not undefined', () => {
+    const formatter = getXAxisFormatter(SMART_DATE_ID);
+    expect(formatter).toBeDefined();
+    expect(formatter).toBeInstanceOf(TimeFormatter);
+    expect((formatter as TimeFormatter).id).toBe(SMART_DATE_ID);
+
+    const undefinedFormatter = getXAxisFormatter(undefined);
+    expect(undefinedFormatter).toBeDefined();
+    expect(undefinedFormatter).toBeInstanceOf(TimeFormatter);
+    expect((undefinedFormatter as TimeFormatter).id).toBe(SMART_DATE_ID);
+
+    const emptyFormatter = getXAxisFormatter();
+    expect(emptyFormatter).toBeDefined();
+    expect(emptyFormatter).toBeInstanceOf(TimeFormatter);
+    expect((emptyFormatter as TimeFormatter).id).toBe(SMART_DATE_ID);
+  });
+});

Reply via email to