From dee5620fc919dd22ff0f13eadde1b065e306fe29 Mon Sep 17 00:00:00 2001 From: Syngnat <92659908+Syngnat@users.noreply.github.com> Date: Wed, 8 Jul 2026 12:24:27 +0800 Subject: [PATCH] test(data-grid): cover global hidden column helpers --- .../src/utils/globalHiddenColumns.test.ts | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 frontend/src/utils/globalHiddenColumns.test.ts diff --git a/frontend/src/utils/globalHiddenColumns.test.ts b/frontend/src/utils/globalHiddenColumns.test.ts new file mode 100644 index 00000000..a7c7c6af --- /dev/null +++ b/frontend/src/utils/globalHiddenColumns.test.ts @@ -0,0 +1,27 @@ +import { describe, expect, it } from 'vitest'; + +import { + filterColumnNamesByGlobalHiddenColumns, + normalizeGlobalHiddenColumns, + parseGlobalHiddenColumnsText, +} from './globalHiddenColumns'; + +describe('globalHiddenColumns', () => { + it('parses comma, semicolon, and newline separated column names with dedupe', () => { + expect(parseGlobalHiddenColumnsText('ID, created_by\nupdated_at;id')).toEqual([ + 'ID', + 'created_by', + 'updated_at', + ]); + }); + + it('normalizes persisted arrays and text input consistently', () => { + expect(normalizeGlobalHiddenColumns([' ID ', 'id', 'NAME'])).toEqual(['ID', 'NAME']); + expect(normalizeGlobalHiddenColumns(' ID\nNAME')).toEqual(['ID', 'NAME']); + }); + + it('filters query result columns case-insensitively', () => { + expect(filterColumnNamesByGlobalHiddenColumns(['ID', 'Name', 'updated_at'], ['id', 'UPDATED_AT'])) + .toEqual(['Name']); + }); +});