diff --git a/packages/mongo/src/client/client.ts b/packages/mongo/src/client/client.ts index 16dd1fa85..c6d50a85e 100644 --- a/packages/mongo/src/client/client.ts +++ b/packages/mongo/src/client/client.ts @@ -73,7 +73,7 @@ export class MongoClient { public async execute(command: T): Promise> { const maxRetries = 10; - const request = { readonly: !command.needsWritableHost() }; + const request = { readonly: !command.needsWritableHost?.() }; for (let i = 1; i <= maxRetries; i++) { const connection = await this.connectionPool.getConnection(request); diff --git a/packages/orm-integration/src/various.ts b/packages/orm-integration/src/various.ts index eb0b564a2..16808daf4 100644 --- a/packages/orm-integration/src/various.ts +++ b/packages/orm-integration/src/various.ts @@ -1,5 +1,17 @@ import { expect } from '@jest/globals'; -import { AutoIncrement, BackReference, cast, entity, isReferenceInstance, PrimaryKey, Reference, Unique, uuid, UUID } from '@deepkit/type'; +import { + AutoIncrement, + BackReference, + cast, + DatabaseField, + entity, + isReferenceInstance, + PrimaryKey, + Reference, + Unique, + uuid, + UUID, +} from '@deepkit/type'; import { identifier, sql, SQLDatabaseAdapter } from '@deepkit/sql'; import { DatabaseFactory } from './test.js'; import { hydrateEntity, isDatabaseOf, UniqueConstraintFailure } from '@deepkit/orm'; @@ -8,6 +20,26 @@ import { randomBytes } from 'crypto'; Error.stackTraceLimit = 20; export const variousTests = { + async testSkipDatabaseFieldForInserts(databaseFactory: DatabaseFactory) { + @entity.name('test_skip_database_field_insert') + class User { + id: number & PrimaryKey & AutoIncrement = 0; + username?: string & DatabaseField<{ skip: true }> + } + + const database = await databaseFactory([User]); + + const user = cast({ username: 'peter' }); + + await database.persist(user); + + { + const result = await database.raw(sql`SELECT * FROM ${User}`).findOne(); + expect(result).toEqual({ + id: 1, + }); + } + }, async testRawQuery(databaseFactory: DatabaseFactory) { @entity.name('test_connection_user') class user {