From 5f7013ee3d789c942aea6de6f029c21541d54e74 Mon Sep 17 00:00:00 2001 From: Andrey Avtomonov Date: Mon, 25 May 2026 00:00:16 +0200 Subject: [PATCH] test(cli): keep dialect edge tests focused --- .../cli/src/connectors/clickhouse/dialect.test.ts | 3 +-- packages/cli/src/connectors/mysql/dialect.test.ts | 3 +-- .../cli/src/connectors/postgres/dialect.test.ts | 3 +-- .../cli/src/connectors/sqlserver/dialect.test.ts | 13 ++++++------- 4 files changed, 9 insertions(+), 13 deletions(-) diff --git a/packages/cli/src/connectors/clickhouse/dialect.test.ts b/packages/cli/src/connectors/clickhouse/dialect.test.ts index 14a1032c..be6fcee5 100644 --- a/packages/cli/src/connectors/clickhouse/dialect.test.ts +++ b/packages/cli/src/connectors/clickhouse/dialect.test.ts @@ -23,7 +23,7 @@ describe('KtxClickHouseDialect', () => { expect(dialect.mapToDimensionType('')).toBe('string'); }); - it('builds sampling, distinct-value, pagination, and time SQL', () => { + it('builds sampling, distinct-value, and pagination SQL', () => { expect(dialect.generateSampleQuery('`analytics`.`events`', 25, ['id', 'event_name'])).toBe( 'SELECT `id`, `event_name` FROM `analytics`.`events` LIMIT 25', ); @@ -34,7 +34,6 @@ describe('KtxClickHouseDialect', () => { 'SELECT DISTINCT toString(`event_name`) AS val', ); expect(dialect.getLimitOffsetClause(10, 20)).toBe('LIMIT 10 OFFSET 20'); - expect(dialect.getTimeTruncExpression('created_at', 'week')).toBe('toStartOfWeek(created_at, 1)'); }); it('prepares named parameters using ClickHouse typed placeholders', () => { diff --git a/packages/cli/src/connectors/mysql/dialect.test.ts b/packages/cli/src/connectors/mysql/dialect.test.ts index cf15527b..d50dcb39 100644 --- a/packages/cli/src/connectors/mysql/dialect.test.ts +++ b/packages/cli/src/connectors/mysql/dialect.test.ts @@ -23,7 +23,7 @@ describe('KtxMysqlDialect', () => { expect(dialect.mapToDimensionType('')).toBe('string'); }); - it('builds sampling, distinct-value, pagination, and time SQL', () => { + it('builds sampling, distinct-value, and pagination SQL', () => { expect(dialect.generateSampleQuery('`analytics`.`orders`', 25, ['id', 'status'])).toBe( 'SELECT `id`, `status` FROM `analytics`.`orders` LIMIT 25', ); @@ -34,7 +34,6 @@ describe('KtxMysqlDialect', () => { 'SELECT DISTINCT CAST(`status` AS CHAR) AS val', ); expect(dialect.getLimitOffsetClause(10, 20)).toBe('LIMIT 10 OFFSET 20'); - expect(dialect.getTimeTruncExpression('created_at', 'month')).toBe("DATE_FORMAT(created_at, '%Y-%m-01')"); }); it('prepares named parameters in deterministic SQL placeholder order', () => { diff --git a/packages/cli/src/connectors/postgres/dialect.test.ts b/packages/cli/src/connectors/postgres/dialect.test.ts index ffe85497..fa5e28b3 100644 --- a/packages/cli/src/connectors/postgres/dialect.test.ts +++ b/packages/cli/src/connectors/postgres/dialect.test.ts @@ -18,7 +18,7 @@ describe('KtxPostgresDialect', () => { expect(dialect.mapToDimensionType('jsonb')).toBe('string'); }); - it('generates sample, distinct-value, statistics, and time SQL', () => { + it('generates sample, distinct-value, and statistics SQL', () => { expect(dialect.generateSampleQuery('"public"."orders"', 5, ['id', 'status'])).toBe( 'SELECT "id", "status" FROM "public"."orders" LIMIT 5', ); @@ -29,7 +29,6 @@ describe('KtxPostgresDialect', () => { 'SELECT DISTINCT "status"::text AS val', ); expect(dialect.generateColumnStatisticsQuery('public', 'orders')).toContain('FROM pg_stats s'); - expect(dialect.getTimeTruncExpression('"created_at"', 'month')).toBe('DATE_TRUNC(\'month\', "created_at")'); }); it('prepares named parameters with PostgreSQL positional parameters', () => { diff --git a/packages/cli/src/connectors/sqlserver/dialect.test.ts b/packages/cli/src/connectors/sqlserver/dialect.test.ts index 5c855340..8890f332 100644 --- a/packages/cli/src/connectors/sqlserver/dialect.test.ts +++ b/packages/cli/src/connectors/sqlserver/dialect.test.ts @@ -7,7 +7,9 @@ describe('KtxSqlServerDialect', () => { it('quotes identifiers and formats schema-qualified table names', () => { expect(dialect.quoteIdentifier('events')).toBe('[events]'); expect(dialect.quoteIdentifier('odd]name')).toBe('[odd]]name]'); - expect(dialect.formatTableName({ catalog: 'warehouse', db: 'dbo', name: 'events' })).toBe('[dbo].[events]'); + expect(dialect.formatTableName({ catalog: 'warehouse', db: 'dbo', name: 'events' })).toBe( + '[warehouse].[dbo].[events]', + ); expect(dialect.formatTableName({ catalog: null, db: null, name: 'events' })).toBe('[events]'); }); @@ -20,7 +22,7 @@ describe('KtxSqlServerDialect', () => { expect(dialect.mapToDimensionType('')).toBe('string'); }); - it('builds sampling, distinct-value, pagination, and time SQL', () => { + it('builds sampling, distinct-value, and pagination SQL', () => { expect(dialect.generateSampleQuery('[dbo].[events]', 25, ['id', 'event_name'])).toBe( 'SELECT TOP 25 [id], [event_name] FROM [dbo].[events]', ); @@ -28,11 +30,8 @@ describe('KtxSqlServerDialect', () => { "SELECT TOP 10 [event_name] FROM [dbo].[events] WHERE [event_name] IS NOT NULL AND LTRIM(RTRIM(CAST([event_name] AS NVARCHAR(MAX)))) != ''", ); expect(dialect.generateDistinctValuesQuery('[dbo].[events]', '[event_name]', 5)).toContain('SELECT TOP 5 val'); - expect(dialect.getTopClause(10)).toBe('TOP 10'); - expect(dialect.getLimitOffsetClause(10, 20)).toBe('OFFSET 20 ROWS FETCH NEXT 10 ROWS ONLY'); - expect(dialect.getTimeTruncExpression('created_at', 'month')).toBe( - 'DATEFROMPARTS(YEAR(created_at), MONTH(created_at), 1)', - ); + expect(dialect.getTopClause(10)).toBe('TOP (10)'); + expect(dialect.getLimitOffsetClause(10, 20)).toBe(''); }); it('prepares named parameters using SQL Server @ parameters', () => {