postgres.test.ts — drizzle-orm Source File
Architecture documentation for postgres.test.ts, a typescript file in the drizzle-orm codebase. 4 imports, 0 dependents.
Entity Profile
Dependency Diagram
graph LR 8697b0cc_14e1_3533_a92a_c565f50917c6["postgres.test.ts"] 690f7dfc_0aea_9ee8_d6e7_26bbb3689031["drizzle-orm"] 8697b0cc_14e1_3533_a92a_c565f50917c6 --> 690f7dfc_0aea_9ee8_d6e7_26bbb3689031 a59b228c_43d4_1772_d3df_66adbf678284["node-postgres"] 8697b0cc_14e1_3533_a92a_c565f50917c6 --> a59b228c_43d4_1772_d3df_66adbf678284 53497908_16e7_977d_e97d_7414884a88a6["pg-core"] 8697b0cc_14e1_3533_a92a_c565f50917c6 --> 53497908_16e7_977d_e97d_7414884a88a6 8d35eaf2_a542_cfd4_fa1a_fafca0f02686["vitest"] 8697b0cc_14e1_3533_a92a_c565f50917c6 --> 8d35eaf2_a542_cfd4_fa1a_fafca0f02686 style 8697b0cc_14e1_3533_a92a_c565f50917c6 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
import { sql } from 'drizzle-orm';
import { drizzle } from 'drizzle-orm/node-postgres';
import { boolean, jsonb, pgTable, serial, text, timestamp, withReplicas } from 'drizzle-orm/pg-core';
import { describe, expect, it, vi } from 'vitest';
const usersTable = pgTable('users', {
id: serial('id' as string).primaryKey(),
name: text('name').notNull(),
verified: boolean('verified').notNull().default(false),
jsonb: jsonb('jsonb').$type<string[]>(),
createdAt: timestamp('created_at', { withTimezone: true }).notNull().defaultNow(),
});
const users = pgTable('users', {
id: serial('id' as string).primaryKey(),
});
describe('[select] read replicas postgres', () => {
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 $1');
// ... (876 more lines)
Dependencies
- drizzle-orm
- node-postgres
- pg-core
- vitest
Source
Frequently Asked Questions
What does postgres.test.ts do?
postgres.test.ts is a source file in the drizzle-orm codebase, written in typescript.
What does postgres.test.ts depend on?
postgres.test.ts imports 4 module(s): drizzle-orm, node-postgres, pg-core, vitest.
Where is postgres.test.ts in the architecture?
postgres.test.ts is located at integration-tests/tests/replicas/postgres.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