From 7b8c141f7e5c089ea6d5cf5bbd4f0712de458253 Mon Sep 17 00:00:00 2001 From: sunlei Date: Mon, 27 Jul 2026 17:16:22 +0800 Subject: [PATCH] =?UTF-8?q?test:=20=E5=AF=B9=E9=BD=90=E7=BB=9F=E4=B8=80?= =?UTF-8?q?=E6=97=B6=E9=97=B4=E5=88=97=E9=BB=98=E8=AE=A4=E5=80=BC=E5=A5=91?= =?UTF-8?q?=E7=BA=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../qqbot-message-push-persistence.spec.ts | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/test/modules/qqbot/message-push/qqbot-message-push-persistence.spec.ts b/test/modules/qqbot/message-push/qqbot-message-push-persistence.spec.ts index 7cb5ebf..48a7ac2 100644 --- a/test/modules/qqbot/message-push/qqbot-message-push-persistence.spec.ts +++ b/test/modules/qqbot/message-push/qqbot-message-push-persistence.spec.ts @@ -23,6 +23,7 @@ type ColumnContract = { const varchar = (propertyName: string, length: number, nullable = false): ColumnContract => ({ default: null, length, name: propertyName.replace(/[A-Z]/g, (letter) => `_${letter.toLowerCase()}`), nullable, precision: null, primary: false, propertyName, type: 'varchar', unsigned: false }); const bigint = (propertyName: string, nullable = false, primary = false): ColumnContract => ({ default: null, length: null, name: propertyName.replace(/[A-Z]/g, (letter) => `_${letter.toLowerCase()}`), nullable, precision: null, primary, propertyName, type: 'bigint', unsigned: false }); const datetime = (propertyName: string, nullable = false): ColumnContract => ({ default: null, length: null, name: propertyName.replace(/[A-Z]/g, (letter) => `_${letter.toLowerCase()}`), nullable, precision: 6, primary: false, propertyName, type: 'datetime', unsigned: false }); +const generatedDatetime = (propertyName: string): ColumnContract => ({ ...datetime(propertyName), default: 'CURRENT_TIMESTAMP(6)' }); const boolean = (propertyName: string, defaultValue: boolean): ColumnContract => ({ default: defaultValue, length: null, name: propertyName.replace(/[A-Z]/g, (letter) => `_${letter.toLowerCase()}`), nullable: false, precision: null, primary: false, propertyName, type: 'tinyint', unsigned: false }); const persistenceContract: ReadonlyArray<{ @@ -39,7 +40,7 @@ const persistenceContract: ReadonlyArray<{ { ...varchar('sourceConfig', 0), length: null, type: 'json' }, { ...varchar('sourceConfigDigest', 64), type: 'char' }, varchar('activeKey', 255, true), boolean('enabled', true), varchar('remark', 500, true), boolean('isDeleted', false), - datetime('createTime'), datetime('updateTime'), + generatedDatetime('createTime'), generatedDatetime('updateTime'), ], indexes: [{ name: 'uk_qqbot_message_subscription_active_key', columns: ['activeKey'], unique: true }], }, @@ -49,7 +50,7 @@ const persistenceContract: ReadonlyArray<{ columns: [ bigint('id', false, true), varchar('name', 100), varchar('sourceKey', 128), { ...varchar('content', 0), length: null, type: 'text' }, boolean('enabled', true), - varchar('remark', 500, true), boolean('isDeleted', false), datetime('createTime'), datetime('updateTime'), + varchar('remark', 500, true), boolean('isDeleted', false), generatedDatetime('createTime'), generatedDatetime('updateTime'), ], indexes: [], }, @@ -59,7 +60,7 @@ const persistenceContract: ReadonlyArray<{ columns: [ bigint('id', false, true), bigint('subscriptionId'), bigint('accountId'), varchar('selfId', 64), bigint('templateId'), varchar('activeKey', 255, true), boolean('enabled', true), - boolean('isDeleted', false), datetime('createTime'), datetime('updateTime'), + boolean('isDeleted', false), generatedDatetime('createTime'), generatedDatetime('updateTime'), ], indexes: [{ name: 'uk_qqbot_message_publish_binding_active_key', columns: ['activeKey'], unique: true }], }, @@ -69,7 +70,7 @@ const persistenceContract: ReadonlyArray<{ columns: [ bigint('id', false, true), bigint('bindingId'), varchar('targetType', 16), varchar('targetId', 64), varchar('targetName', 120, true), varchar('activeKey', 300, true), boolean('enabled', true), - boolean('isDeleted', false), datetime('createTime'), datetime('updateTime'), + boolean('isDeleted', false), generatedDatetime('createTime'), generatedDatetime('updateTime'), ], indexes: [{ name: 'uk_qqbot_message_publish_target_active_key', columns: ['activeKey'], unique: true }], }, @@ -82,7 +83,7 @@ const persistenceContract: ReadonlyArray<{ { ...varchar('fanoutStatus', 32), default: 'accepted' }, { ...varchar('fanoutAttemptCount', 0), default: 0, length: null, type: 'int', unsigned: true }, datetime('nextFanoutAt', true), datetime('fanoutLeaseUntil', true), varchar('lastErrorCode', 64, true), - varchar('lastErrorMessage', 500, true), datetime('createTime'), datetime('updateTime'), + varchar('lastErrorMessage', 500, true), generatedDatetime('createTime'), generatedDatetime('updateTime'), ], indexes: [ { name: 'uk_qqbot_message_event_event_id', columns: ['eventId'], unique: true }, @@ -102,7 +103,7 @@ const persistenceContract: ReadonlyArray<{ varchar('status', 32), { ...varchar('attemptCount', 0), default: 0, length: null, type: 'int', unsigned: true }, datetime('nextAttemptAt', true), datetime('processingLeaseUntil', true), bigint('sendLogId', true), varchar('lastErrorCode', 64, true), varchar('lastErrorMessage', 500, true), datetime('expiresAt'), - datetime('createTime'), datetime('updateTime'), + generatedDatetime('createTime'), generatedDatetime('updateTime'), ], indexes: [ { name: 'uk_qqbot_message_delivery_event_target', columns: ['messageEventId', 'publishTargetId'], unique: true }, @@ -125,7 +126,9 @@ const sortByPropertyName = (values: readonly const getColumns = (entity: EntityClass): ColumnContract[] => getMetadataArgsStorage() .columns.filter((column) => column.target === entity) .map((column) => ({ - default: column.options.default ?? null, + default: typeof column.options.default === 'function' + ? column.options.default() + : column.options.default ?? null, length: column.options.length === undefined ? null : Number(column.options.length), name: `${column.options.name || column.propertyName}`, nullable: column.options.nullable === true,