From 5de28cd4c4525a72f8e78ce5696b39a3a9a0c65e Mon Sep 17 00:00:00 2001 From: chenos Date: Tue, 2 Jan 2024 14:44:54 +0800 Subject: [PATCH] fix(ui-schema-storage): duplicate of empty schema --- .../src/server/__tests__/ui-schema-repository.test.ts | 5 +++++ .../plugin-ui-schema-storage/src/server/repository.ts | 3 +++ 2 files changed, 8 insertions(+) diff --git a/packages/plugins/@nocobase/plugin-ui-schema-storage/src/server/__tests__/ui-schema-repository.test.ts b/packages/plugins/@nocobase/plugin-ui-schema-storage/src/server/__tests__/ui-schema-repository.test.ts index cbb26f86c..7369f0fd9 100644 --- a/packages/plugins/@nocobase/plugin-ui-schema-storage/src/server/__tests__/ui-schema-repository.test.ts +++ b/packages/plugins/@nocobase/plugin-ui-schema-storage/src/server/__tests__/ui-schema-repository.test.ts @@ -225,6 +225,11 @@ describe('ui_schema repository', () => { expect(s2['x-uid']).not.toEqual(s['x-uid']); }); + it('should be null', async () => { + const s2 = await repository.duplicate('test-null'); + expect(s2).toBeNull(); + }); + describe('schema', () => { let schema; beforeEach(() => { diff --git a/packages/plugins/@nocobase/plugin-ui-schema-storage/src/server/repository.ts b/packages/plugins/@nocobase/plugin-ui-schema-storage/src/server/repository.ts index c42f561b6..2fc2a9e07 100644 --- a/packages/plugins/@nocobase/plugin-ui-schema-storage/src/server/repository.ts +++ b/packages/plugins/@nocobase/plugin-ui-schema-storage/src/server/repository.ts @@ -445,6 +445,9 @@ export class UiSchemaRepository extends Repository { @transaction() async duplicate(uid: string, options?: Transactionable) { const s = await this.getJsonSchema(uid, { ...options, includeAsyncNode: true }); + if (!s?.['x-uid']) { + return null; + } this.regenerateUid(s); return this.insert(s, options); }