From 94d91e13bfcaf360099a0a3816b0025502b145f4 Mon Sep 17 00:00:00 2001 From: Daria Date: Mon, 11 May 2026 12:30:00 +0300 Subject: [PATCH] fix(core): Export boolean CSV values as true/false for Data Tables (#30007) --- .../data-table-csv.controller.integration.test.ts | 12 ++++++++++-- .../cli/src/modules/data-table/data-table.service.ts | 6 ++++++ 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/packages/cli/src/modules/data-table/__tests__/data-table-csv.controller.integration.test.ts b/packages/cli/src/modules/data-table/__tests__/data-table-csv.controller.integration.test.ts index fec9eff6935..0030137aaa7 100644 --- a/packages/cli/src/modules/data-table/__tests__/data-table-csv.controller.integration.test.ts +++ b/packages/cli/src/modules/data-table/__tests__/data-table-csv.controller.integration.test.ts @@ -210,6 +210,12 @@ describe('GET /projects/:projectId/data-tables/:dataTableId/download-csv', () => flag: true, timestamp: testDate, }, + { + text: 'world', + number: 99, + flag: false, + timestamp: testDate, + }, ], columns, 'id', @@ -225,8 +231,10 @@ describe('GET /projects/:projectId/data-tables/:dataTableId/download-csv', () => expect(lines[0]).toBe('id,text,number,flag,timestamp,createdAt,updatedAt'); expect(lines[1]).toContain('hello'); expect(lines[1]).toContain('42'); - // Boolean values vary by database: SQLite use 0/1, PostgreSQL uses true/false - expect(lines[1]).toMatch(/,(true|1),/); + expect(lines[1]).toContain(',true,'); + expect(lines[2]).toContain('world'); + expect(lines[2]).toContain('99'); + expect(lines[2]).toContain(',false,'); // Check for date in ISO format (timezone may vary) expect(lines[1]).toMatch(/2025-01-15T\d{2}:\d{2}:\d{2}\.\d{3}Z/); }); diff --git a/packages/cli/src/modules/data-table/data-table.service.ts b/packages/cli/src/modules/data-table/data-table.service.ts index e46b52129cf..bbbba71fb0f 100644 --- a/packages/cli/src/modules/data-table/data-table.service.ts +++ b/packages/cli/src/modules/data-table/data-table.service.ts @@ -830,6 +830,12 @@ export class DataTableService { } if (columnType === 'boolean') { + if (value === 1 || value === '1') { + return 'true'; + } + if (value === 0 || value === '0') { + return 'false'; + } return String(value); }