diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/file-system/file-system-base.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/file-system/file-system-base.ts index 26dd0f0320..72c4cd0ca6 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/file-system/file-system-base.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/file-system/file-system-base.ts @@ -13,9 +13,9 @@ export abstract class UmbFileSystemMockDbBase extend return this.data.find((item) => item.path === path); } - update(updateItem: T) { - const itemIndex = this.data.findIndex((item) => item.path === updateItem.path); - this.data[itemIndex] = updateItem; + update(existingPath: string, updatedItem: T) { + const itemIndex = this.data.findIndex((item) => item.path === existingPath); + this.data[itemIndex] = updatedItem; } delete(path: string) { diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/file-system/file-system-detail.manager.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/file-system/file-system-detail.manager.ts index 7fd1045449..c47022639a 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/file-system/file-system-detail.manager.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/file-system/file-system-detail.manager.ts @@ -1,5 +1,10 @@ import { UmbFileSystemMockDbBase } from './file-system-base.js'; -import { CreateTextFileViewModelBaseModel, ScriptResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import { getParentPathFromServerPath } from './util/index.js'; +import { + CreateTextFileViewModelBaseModel, + ScriptResponseModel, + UpdateTextFileViewModelBaseModel, +} from '@umbraco-cms/backoffice/backend-api'; export interface UmbMockFileSystemDetailManagerArgs { createMapper: (item: CreateTextFileViewModelBaseModel) => MockItemType; @@ -30,6 +35,22 @@ export class UmbMockFileSystemDetailManager { + it('it returns the parent path of a nested server path', () => { + const path = 'Folder A/Folder AA/Folder AAA'; + const expectedParentPath = 'Folder A/Folder AA'; + expect(getParentPathFromServerPath(path)).to.equal(expectedParentPath); + }); + + it('it returns null of a root server path', () => { + const path = 'Folder A'; + expect(getParentPathFromServerPath(path)).to.be.null; + }); +}); diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/file-system/util/parent-path-from-server-path.function.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/file-system/util/parent-path-from-server-path.function.ts new file mode 100644 index 0000000000..3930a27324 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/file-system/util/parent-path-from-server-path.function.ts @@ -0,0 +1,4 @@ +export const getParentPathFromServerPath = (serverPath: string): string | null => { + const parentPath = serverPath.substring(0, serverPath.lastIndexOf('/')); + return parentPath || null; +}; diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/script/script.db.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/script/script.db.ts index 4b0322eb37..6e74cccf3a 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/script/script.db.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/script/script.db.ts @@ -4,7 +4,7 @@ import { UmbMockFileSystemItemManager } from '../file-system/file-system-item.ma import { UmbMockFileSystemTreeManager } from '../file-system/file-system-tree.manager.js'; import { UmbMockFileSystemDetailManager } from '../file-system/file-system-detail.manager.js'; import { UmbMockScriptModel, data as scriptData } from './script.data.js'; -import { CreateTextFileViewModelBaseModel, ScriptResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import { CreateScriptRequestModel, ScriptResponseModel } from '@umbraco-cms/backoffice/backend-api'; class UmbScriptMockDB extends UmbFileSystemMockDbBase { tree = new UmbMockFileSystemTreeManager(this); @@ -21,7 +21,7 @@ class UmbScriptMockDB extends UmbFileSystemMockDbBase { }); } - #createScriptMockItem = (item: CreateTextFileViewModelBaseModel): UmbMockScriptModel => { + #createScriptMockItem = (item: CreateScriptRequestModel): UmbMockScriptModel => { return { name: item.name, content: item.content,