diff --git a/packages/plugins/@nocobase/plugin-file-manager/src/server/__tests__/utils.test.ts b/packages/plugins/@nocobase/plugin-file-manager/src/server/__tests__/utils.test.ts new file mode 100644 index 0000000000..9264ef780a --- /dev/null +++ b/packages/plugins/@nocobase/plugin-file-manager/src/server/__tests__/utils.test.ts @@ -0,0 +1,50 @@ +/** + * This file is part of the NocoBase (R) project. + * Copyright (c) 2020-2024 NocoBase Co., Ltd. + * Authors: NocoBase Team. + * + * This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License. + * For more information, please refer to: https://www.nocobase.com/agreement. + */ + +import { getApp } from '.'; +import PluginFileManagerServer from '../server'; + +import { STORAGE_TYPE_LOCAL } from '../../constants'; + +import { getFileKey } from '../utils'; + +describe('file manager > utils', () => { + let app; + let agent; + let db; + let plugin: PluginFileManagerServer; + let StorageRepo; + let AttachmentRepo; + let local; + + beforeEach(async () => { + app = await getApp(); + agent = app.agent(); + db = app.db; + plugin = app.pm.get(PluginFileManagerServer) as PluginFileManagerServer; + + AttachmentRepo = db.getCollection('attachments').repository; + StorageRepo = db.getCollection('storages').repository; + local = await StorageRepo.findOne({ + filter: { + type: STORAGE_TYPE_LOCAL, + }, + }); + }); + + afterEach(async () => { + await app.destroy(); + }); + + describe('getFileKey', () => { + it('path as null should works', async () => { + expect(getFileKey({ path: null, filename: 'test.jpg' })).toBe('test.jpg'); + }); + }); +}); diff --git a/packages/plugins/@nocobase/plugin-file-manager/src/server/utils.ts b/packages/plugins/@nocobase/plugin-file-manager/src/server/utils.ts index a5d6b1334d..989aa8dd81 100644 --- a/packages/plugins/@nocobase/plugin-file-manager/src/server/utils.ts +++ b/packages/plugins/@nocobase/plugin-file-manager/src/server/utils.ts @@ -28,7 +28,7 @@ export const cloudFilenameGetter = (storage) => (req, file, cb) => { }; export function getFileKey(record) { - return urlJoin(record.path, record.filename).replace(/^\//, ''); + return urlJoin(record.path || '', record.filename).replace(/^\//, ''); } export function ensureUrlEncoded(value) {