Home / File/ singlestore.test.ts — drizzle-orm Source File

singlestore.test.ts — drizzle-orm Source File

Architecture documentation for singlestore.test.ts, a typescript file in the drizzle-orm codebase. 4 imports, 0 dependents.

File typescript 4 imports

Entity Profile

Dependency Diagram

graph LR
  2337a8cb_b462_b51b_0514_343dc1fdde3c["singlestore.test.ts"]
  690f7dfc_0aea_9ee8_d6e7_26bbb3689031["drizzle-orm"]
  2337a8cb_b462_b51b_0514_343dc1fdde3c --> 690f7dfc_0aea_9ee8_d6e7_26bbb3689031
  11dc3ec3_3c65_f9a0_8c8d_09bc214bc70d["singlestore"]
  2337a8cb_b462_b51b_0514_343dc1fdde3c --> 11dc3ec3_3c65_f9a0_8c8d_09bc214bc70d
  b4539857_26bc_b042_0719_5e529c80f1b4["singlestore-core"]
  2337a8cb_b462_b51b_0514_343dc1fdde3c --> b4539857_26bc_b042_0719_5e529c80f1b4
  8d35eaf2_a542_cfd4_fa1a_fafca0f02686["vitest"]
  2337a8cb_b462_b51b_0514_343dc1fdde3c --> 8d35eaf2_a542_cfd4_fa1a_fafca0f02686
  style 2337a8cb_b462_b51b_0514_343dc1fdde3c fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

import { sql } from 'drizzle-orm';
import { drizzle } from 'drizzle-orm/singlestore';
import { serial, singlestoreTable, withReplicas } from 'drizzle-orm/singlestore-core';
import { describe, expect, it, vi } from 'vitest';

// const usersTable = singlestoreTable('users', {
// 	id: serial('id' as string).primaryKey(),
// 	name: text('name').notNull(),
// 	verified: boolean('verified').notNull().default(false),
// });

const users = singlestoreTable('users', {
	id: serial('id' as string).primaryKey(),
});

describe('[select] read replicas singlestore', () => {
	it('primary select', () => {
		const primaryDb = drizzle.mock();
		const read1 = drizzle.mock();
		const read2 = drizzle.mock();

		const db = withReplicas(primaryDb, [read1, read2]);

		const spyPrimary = vi.spyOn(primaryDb, 'select');
		const spyRead1 = vi.spyOn(read1, 'select');
		const spyRead2 = vi.spyOn(read2, 'select');

		const query = db.$primary.select().from(users);

		expect(spyPrimary).toHaveBeenCalledTimes(1);
		expect(query.toSQL().sql).toEqual('select `id` from `users`');

		expect(spyRead1).toHaveBeenCalledTimes(0);
		expect(spyRead2).toHaveBeenCalledTimes(0);
	});

	it('random replica select', () => {
		const primaryDb = drizzle.mock();
		const read1 = drizzle.mock();
		const read2 = drizzle.mock();

		const randomMockReplica = vi.fn().mockReturnValueOnce(read1).mockReturnValueOnce(read2);

		const db = withReplicas(primaryDb, [read1, read2], () => {
			return randomMockReplica();
		});

		const spyPrimary = vi.spyOn(primaryDb, 'select');
		const spyRead1 = vi.spyOn(read1, 'select');
		const spyRead2 = vi.spyOn(read2, 'select');

		const query1 = db.select({ count: sql`count(*)`.as('count') }).from(users).limit(1);

		expect(spyPrimary).toHaveBeenCalledTimes(0);
		expect(spyRead1).toHaveBeenCalledTimes(1);
		expect(spyRead2).toHaveBeenCalledTimes(0);

		expect(query1.toSQL().sql).toEqual('select count(*) as `count` from `users` limit ?');

		const query2 = db.select().from(users);
// ... (863 more lines)

Dependencies

  • drizzle-orm
  • singlestore
  • singlestore-core
  • vitest

Frequently Asked Questions

What does singlestore.test.ts do?
singlestore.test.ts is a source file in the drizzle-orm codebase, written in typescript.
What does singlestore.test.ts depend on?
singlestore.test.ts imports 4 module(s): drizzle-orm, singlestore, singlestore-core, vitest.
Where is singlestore.test.ts in the architecture?
singlestore.test.ts is located at integration-tests/tests/replicas/singlestore.test.ts (directory: integration-tests/tests/replicas).

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free