From 0969a7687730075182342ce2647cb267f611092e Mon Sep 17 00:00:00 2001 From: prodrigues Date: Thu, 14 Nov 2024 01:31:37 +0000 Subject: [PATCH] fix replica integration tests --- .../tests/replicas/singlestore.test.ts | 160 +++++++++--------- .../tests/singlestore/singlestore-common.ts | 23 +-- .../singlestore/singlestore-prefixed.test.ts | 18 +- 3 files changed, 103 insertions(+), 98 deletions(-) diff --git a/integration-tests/tests/replicas/singlestore.test.ts b/integration-tests/tests/replicas/singlestore.test.ts index 76d84c972..56a589224 100644 --- a/integration-tests/tests/replicas/singlestore.test.ts +++ b/integration-tests/tests/replicas/singlestore.test.ts @@ -15,9 +15,9 @@ const users = singlestoreTable('users', { describe('[select] read replicas singlestore', () => { it('primary select', () => { - const primaryDb = drizzle({} as any); - const read1 = drizzle({} as any); - const read2 = drizzle({} as any); + const primaryDb = drizzle.mock(); + const read1 = drizzle.mock(); + const read2 = drizzle.mock(); const db = withReplicas(primaryDb, [read1, read2]); @@ -35,9 +35,9 @@ describe('[select] read replicas singlestore', () => { }); it('random replica select', () => { - const primaryDb = drizzle({} as any); - const read1 = drizzle({} as any); - const read2 = drizzle({} as any); + const primaryDb = drizzle.mock(); + const read1 = drizzle.mock(); + const read2 = drizzle.mock(); const randomMockReplica = vi.fn().mockReturnValueOnce(read1).mockReturnValueOnce(read2); @@ -64,8 +64,8 @@ describe('[select] read replicas singlestore', () => { }); it('single read replica select', () => { - const primaryDb = drizzle({} as any); - const read1 = drizzle({} as any); + const primaryDb = drizzle.mock(); + const read1 = drizzle.mock(); const db = withReplicas(primaryDb, [read1]); @@ -84,8 +84,8 @@ describe('[select] read replicas singlestore', () => { }); it('single read replica select + primary select', () => { - const primaryDb = drizzle({} as any); - const read1 = drizzle({} as any); + const primaryDb = drizzle.mock(); + const read1 = drizzle.mock(); const db = withReplicas(primaryDb, [read1]); @@ -105,9 +105,9 @@ describe('[select] read replicas singlestore', () => { }); it('always first read select', () => { - const primaryDb = drizzle({} as any); - const read1 = drizzle({} as any); - const read2 = drizzle({} as any); + const primaryDb = drizzle.mock(); + const read1 = drizzle.mock(); + const read2 = drizzle.mock(); const db = withReplicas(primaryDb, [read1, read2], (replicas) => { return replicas[0]!; @@ -134,9 +134,9 @@ describe('[select] read replicas singlestore', () => { describe('[selectDistinct] read replicas singlestore', () => { it('primary selectDistinct', () => { - const primaryDb = drizzle({} as any); - const read1 = drizzle({} as any); - const read2 = drizzle({} as any); + const primaryDb = drizzle.mock(); + const read1 = drizzle.mock(); + const read2 = drizzle.mock(); const db = withReplicas(primaryDb, [read1, read2]); @@ -153,9 +153,9 @@ describe('[selectDistinct] read replicas singlestore', () => { }); it('random replica selectDistinct', () => { - const primaryDb = drizzle({} as any); - const read1 = drizzle({} as any); - const read2 = drizzle({} as any); + const primaryDb = drizzle.mock(); + const read1 = drizzle.mock(); + const read2 = drizzle.mock(); const randomMockReplica = vi.fn().mockReturnValueOnce(read1).mockReturnValueOnce(read2); @@ -181,8 +181,8 @@ describe('[selectDistinct] read replicas singlestore', () => { }); it('single read replica selectDistinct', () => { - const primaryDb = drizzle({} as any); - const read1 = drizzle({} as any); + const primaryDb = drizzle.mock(); + const read1 = drizzle.mock(); const db = withReplicas(primaryDb, [read1]); @@ -201,8 +201,8 @@ describe('[selectDistinct] read replicas singlestore', () => { }); it('single read replica selectDistinct + primary selectDistinct', () => { - const primaryDb = drizzle({} as any); - const read1 = drizzle({} as any); + const primaryDb = drizzle.mock(); + const read1 = drizzle.mock(); const db = withReplicas(primaryDb, [read1]); @@ -222,9 +222,9 @@ describe('[selectDistinct] read replicas singlestore', () => { }); it('always first read selectDistinct', () => { - const primaryDb = drizzle({} as any); - const read1 = drizzle({} as any); - const read2 = drizzle({} as any); + const primaryDb = drizzle.mock(); + const read1 = drizzle.mock(); + const read2 = drizzle.mock(); const db = withReplicas(primaryDb, [read1, read2], (replicas) => { return replicas[0]!; @@ -250,9 +250,9 @@ describe('[selectDistinct] read replicas singlestore', () => { describe('[with] read replicas singlestore', () => { it('primary with', () => { - const primaryDb = drizzle({} as any); - const read1 = drizzle({} as any); - const read2 = drizzle({} as any); + const primaryDb = drizzle.mock(); + const read1 = drizzle.mock(); + const read2 = drizzle.mock(); const db = withReplicas(primaryDb, [read1, read2]); @@ -273,9 +273,9 @@ describe('[with] read replicas singlestore', () => { }); it('random replica with', () => { - const primaryDb = drizzle({} as any); - const read1 = drizzle({} as any); - const read2 = drizzle({} as any); + const primaryDb = drizzle.mock(); + const read1 = drizzle.mock(); + const read2 = drizzle.mock(); const randomMockReplica = vi.fn().mockReturnValueOnce(read1).mockReturnValueOnce(read2); @@ -299,8 +299,8 @@ describe('[with] read replicas singlestore', () => { }); it('single read replica with', () => { - const primaryDb = drizzle({} as any); - const read1 = drizzle({} as any); + const primaryDb = drizzle.mock(); + const read1 = drizzle.mock(); const db = withReplicas(primaryDb, [read1]); @@ -317,8 +317,8 @@ describe('[with] read replicas singlestore', () => { }); it('single read replica with + primary with', () => { - const primaryDb = drizzle({} as any); - const read1 = drizzle({} as any); + const primaryDb = drizzle.mock(); + const read1 = drizzle.mock(); const db = withReplicas(primaryDb, [read1]); @@ -336,9 +336,9 @@ describe('[with] read replicas singlestore', () => { }); it('always first read with', () => { - const primaryDb = drizzle({} as any); - const read1 = drizzle({} as any); - const read2 = drizzle({} as any); + const primaryDb = drizzle.mock(); + const read1 = drizzle.mock(); + const read2 = drizzle.mock(); const db = withReplicas(primaryDb, [read1, read2], (replicas) => { return replicas[0]!; @@ -367,9 +367,9 @@ describe('[with] read replicas singlestore', () => { describe('[update] replicas singlestore', () => { it('primary update', () => { - const primaryDb = drizzle({} as any); - const read1 = drizzle({} as any); - const read2 = drizzle({} as any); + const primaryDb = drizzle.mock(); + const read1 = drizzle.mock(); + const read2 = drizzle.mock(); const db = withReplicas(primaryDb, [read1, read2]); @@ -402,9 +402,9 @@ describe('[update] replicas singlestore', () => { describe('[delete] replicas singlestore', () => { it('primary delete', () => { - const primaryDb = drizzle({} as any); - const read1 = drizzle({} as any); - const read2 = drizzle({} as any); + const primaryDb = drizzle.mock(); + const read1 = drizzle.mock(); + const read2 = drizzle.mock(); const db = withReplicas(primaryDb, [read1, read2]); @@ -438,9 +438,9 @@ describe('[delete] replicas singlestore', () => { describe('[insert] replicas singlestore', () => { it('primary insert', () => { - const primaryDb = drizzle({} as any); - const read1 = drizzle({} as any); - const read2 = drizzle({} as any); + const primaryDb = drizzle.mock(); + const read1 = drizzle.mock(); + const read2 = drizzle.mock(); const db = withReplicas(primaryDb, [read1, read2]); @@ -473,9 +473,9 @@ describe('[insert] replicas singlestore', () => { describe('[execute] replicas singlestore', () => { it('primary execute', async () => { - const primaryDb = drizzle({} as any); - const read1 = drizzle({} as any); - const read2 = drizzle({} as any); + const primaryDb = drizzle.mock(); + const read1 = drizzle.mock(); + const read2 = drizzle.mock(); const db = withReplicas(primaryDb, [read1, read2]); @@ -515,9 +515,9 @@ describe('[execute] replicas singlestore', () => { describe('[transaction] replicas singlestore', () => { it('primary transaction', async () => { - const primaryDb = drizzle({} as any); - const read1 = drizzle({} as any); - const read2 = drizzle({} as any); + const primaryDb = drizzle.mock(); + const read1 = drizzle.mock(); + const read2 = drizzle.mock(); const db = withReplicas(primaryDb, [read1, read2]); @@ -558,9 +558,9 @@ describe('[transaction] replicas singlestore', () => { describe('[findFirst] read replicas singlestore', () => { it('primary findFirst', () => { - const primaryDb = drizzle({} as any, { schema: { usersTable } }); - const read1 = drizzle({} as any, { schema: { usersTable } }); - const read2 = drizzle({} as any, { schema: { usersTable } }); + const primaryDb = drizzle.mock({ schema: { usersTable } }); + const read1 = drizzle.mock({ schema: { usersTable } }); + const read2 = drizzle.mock({ schema: { usersTable } }); const db = withReplicas(primaryDb, [read1, read2]); @@ -578,9 +578,9 @@ describe('[findFirst] read replicas singlestore', () => { }); it('random replica findFirst', () => { - const primaryDb = drizzle({} as any, { schema: { usersTable } }); - const read1 = drizzle({} as any, { schema: { usersTable } }); - const read2 = drizzle({} as any, { schema: { usersTable } }); + const primaryDb = drizzle.mock({ schema: { usersTable } }); + const read1 = drizzle.mock({ schema: { usersTable } }); + const read2 = drizzle.mock({ schema: { usersTable } }); const randomMockReplica = vi.fn().mockReturnValueOnce(read1).mockReturnValueOnce(read2); @@ -607,8 +607,8 @@ describe('[findFirst] read replicas singlestore', () => { }); it('single read replica findFirst', () => { - const primaryDb = drizzle({} as any, { schema: { usersTable } }); - const read1 = drizzle({} as any, { schema: { usersTable } }); + const primaryDb = drizzle.mock({ schema: { usersTable } }); + const read1 = drizzle.mock({ schema: { usersTable } }); const db = withReplicas(primaryDb, [read1]); @@ -625,8 +625,8 @@ describe('[findFirst] read replicas singlestore', () => { }); it('single read replica findFirst + primary findFirst', () => { - const primaryDb = drizzle({} as any, { schema: { usersTable } }); - const read1 = drizzle({} as any, { schema: { usersTable } }); + const primaryDb = drizzle.mock({ schema: { usersTable } }); + const read1 = drizzle.mock({ schema: { usersTable } }); const db = withReplicas(primaryDb, [read1]); @@ -644,9 +644,9 @@ describe('[findFirst] read replicas singlestore', () => { }); it('always first read findFirst', () => { - const primaryDb = drizzle({} as any, { schema: { usersTable } }); - const read1 = drizzle({} as any, { schema: { usersTable } }); - const read2 = drizzle({} as any, { schema: { usersTable } }); + const primaryDb = drizzle.mock({ schema: { usersTable } }); + const read1 = drizzle.mock({ schema: { usersTable } }); + const read2 = drizzle.mock({ schema: { usersTable } }); const db = withReplicas(primaryDb, [read1, read2], (replicas) => { return replicas[0]!; @@ -670,9 +670,9 @@ describe('[findFirst] read replicas singlestore', () => { describe('[findMany] read replicas singlestore', () => { it('primary findMany', () => { - const primaryDb = drizzle({} as any, { schema: { usersTable } }); - const read1 = drizzle({} as any, { schema: { usersTable } }); - const read2 = drizzle({} as any, { schema: { usersTable } }); + const primaryDb = drizzle.mock({ schema: { usersTable } }); + const read1 = drizzle.mock({ schema: { usersTable } }); + const read2 = drizzle.mock({ schema: { usersTable } }); const db = withReplicas(primaryDb, [read1, read2]); @@ -691,9 +691,9 @@ describe('[findMany] read replicas singlestore', () => { }); it('random replica findMany', () => { - const primaryDb = drizzle({} as any, { schema: { usersTable } }); - const read1 = drizzle({} as any, { schema: { usersTable } }); - const read2 = drizzle({} as any, { schema: { usersTable } }); + const primaryDb = drizzle.mock({ schema: { usersTable } }); + const read1 = drizzle.mock({ schema: { usersTable } }); + const read2 = drizzle.mock({ schema: { usersTable } }); const randomMockReplica = vi.fn().mockReturnValueOnce(read1).mockReturnValueOnce(read2); @@ -724,8 +724,8 @@ describe('[findMany] read replicas singlestore', () => { }); it('single read replica findMany', () => { - const primaryDb = drizzle({} as any, { schema: { usersTable } }); - const read1 = drizzle({} as any, { schema: { usersTable } }); + const primaryDb = drizzle.mock({ schema: { usersTable } }); + const read1 = drizzle.mock({ schema: { usersTable } }); const db = withReplicas(primaryDb, [read1]); @@ -748,8 +748,8 @@ describe('[findMany] read replicas singlestore', () => { }); it('single read replica findMany + primary findMany', () => { - const primaryDb = drizzle({} as any, { schema: { usersTable } }); - const read1 = drizzle({} as any, { schema: { usersTable } }); + const primaryDb = drizzle.mock({ schema: { usersTable } }); + const read1 = drizzle.mock({ schema: { usersTable } }); const db = withReplicas(primaryDb, [read1]); @@ -774,9 +774,9 @@ describe('[findMany] read replicas singlestore', () => { }); it('always first read findMany', () => { - const primaryDb = drizzle({} as any, { schema: { usersTable } }); - const read1 = drizzle({} as any, { schema: { usersTable } }); - const read2 = drizzle({} as any, { schema: { usersTable } }); + const primaryDb = drizzle.mock({ schema: { usersTable } }); + const read1 = drizzle.mock({ schema: { usersTable } }); + const read2 = drizzle.mock({ schema: { usersTable } }); const db = withReplicas(primaryDb, [read1, read2], (replicas) => { return replicas[0]!; diff --git a/integration-tests/tests/singlestore/singlestore-common.ts b/integration-tests/tests/singlestore/singlestore-common.ts index 037c27202..620715bc9 100644 --- a/integration-tests/tests/singlestore/singlestore-common.ts +++ b/integration-tests/tests/singlestore/singlestore-common.ts @@ -35,7 +35,6 @@ import { decimal, except, getTableConfig, - getViewConfig, int, intersect, json, @@ -46,7 +45,7 @@ import { singlestoreSchema, singlestoreTable, singlestoreTableCreator, - singlestoreView, + /* singlestoreView, */ smallint, text, time, @@ -1832,7 +1831,8 @@ export function tests(driver?: string) { ]); }); - test('view', async (ctx) => { + // TODO: Unskip when views are supported + /* test.skip('view', async (ctx) => { const { db } = ctx.singlestore; const newYorkers1 = singlestoreView('new_yorkers') @@ -1893,7 +1893,7 @@ export function tests(driver?: string) { } await db.execute(sql`drop view ${newYorkers1}`); - }); + }); */ test('select from raw sql', async (ctx) => { const { db } = ctx.singlestore; @@ -2169,7 +2169,8 @@ export function tests(driver?: string) { await db.execute(sql`drop table ${ticket}`); }); - test('subquery with view', async (ctx) => { + // TODO: Unskip when views are supported + /* test.skip('subquery with view', async (ctx) => { const { db } = ctx.singlestore; const users = singlestoreTable('users_subquery_view', { @@ -2205,9 +2206,10 @@ export function tests(driver?: string) { await db.execute(sql`drop view ${newYorkers}`); await db.execute(sql`drop table ${users}`); - }); + }); */ - test('join view as subquery', async (ctx) => { + // TODO: Unskip when views are supported + /* test.skip('join view as subquery', async (ctx) => { const { db } = ctx.singlestore; const users = singlestoreTable('users_join_view', { @@ -2258,7 +2260,7 @@ export function tests(driver?: string) { await db.execute(sql`drop view ${newYorkers}`); await db.execute(sql`drop table ${users}`); - }); + }); */ test('select iterator', async (ctx) => { const { db } = ctx.singlestore; @@ -3342,7 +3344,8 @@ export function tests(driver?: string) { expect(result).toStrictEqual([{ customId: 'test' }, { customId: 'ao865jf3mcmkfkk8o5ri495z' }]); }); - test('mySchema :: view', async (ctx) => { + // TODO: Unkip this test when views are supported + /* test.skip('mySchema :: view', async (ctx) => { const { db } = ctx.singlestore; const newYorkers1 = mySchema.view('new_yorkers') @@ -3403,7 +3406,7 @@ export function tests(driver?: string) { } await db.execute(sql`drop view ${newYorkers1}`); - }); + }); */ test('limit 0', async (ctx) => { const { db } = ctx.singlestore; diff --git a/integration-tests/tests/singlestore/singlestore-prefixed.test.ts b/integration-tests/tests/singlestore/singlestore-prefixed.test.ts index 224ad433d..af7912216 100644 --- a/integration-tests/tests/singlestore/singlestore-prefixed.test.ts +++ b/integration-tests/tests/singlestore/singlestore-prefixed.test.ts @@ -9,14 +9,13 @@ import { boolean, date, datetime, - getViewConfig, int, json, serial, singlestoreEnum, singlestoreTable as singlestoreTableRaw, singlestoreTableCreator, - singlestoreView, + /* singlestoreView, */ text, time, timestamp, @@ -1085,7 +1084,8 @@ test('having', async () => { ]); }); -test('view', async () => { +// TODO: Unskip when views are supported +/* test.skip('view', async () => { const newYorkers1 = singlestoreView('new_yorkers') .as((qb) => qb.select().from(users2Table).where(eq(users2Table.cityId, 1))); @@ -1144,7 +1144,7 @@ test('view', async () => { } await db.execute(sql`drop view ${newYorkers1}`); -}); +}); */ test('select from raw sql', async () => { const result = await db.select({ @@ -1396,7 +1396,8 @@ test('join subquery with join', async () => { }]); }); -test('subquery with view', async () => { +// TODO: Unskip when views are supported +/* test.skip('subquery with view', async () => { const users = singlestoreTable('users_subquery_view', { id: serial('id').primaryKey(), name: text('name').notNull(), @@ -1430,9 +1431,10 @@ test('subquery with view', async () => { { id: 1, name: 'John', cityId: 1 }, { id: 3, name: 'Jack', cityId: 1 }, ]); -}); +}); */ -test('join view as subquery', async () => { +// TODO: Unskip when views are supported +/* test.skip('join view as subquery', async () => { const users = singlestoreTable('users_join_view', { id: serial('id').primaryKey(), name: text('name').notNull(), @@ -1481,7 +1483,7 @@ test('join view as subquery', async () => { await db.execute(sql`drop view ${newYorkers}`); await db.execute(sql`drop table ${users}`); -}); +}); */ test('select iterator', async () => { const users = singlestoreTable('users_iterator', {