From 9a36c13c047bd6dc9d448090dccadf8dc682f8b4 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Fri, 5 Apr 2024 18:32:05 +0200 Subject: [PATCH 01/11] add entity module --- src/Umbraco.Web.UI.Client/package.json | 1 + src/Umbraco.Web.UI.Client/tsconfig.json | 1 + 2 files changed, 2 insertions(+) diff --git a/src/Umbraco.Web.UI.Client/package.json b/src/Umbraco.Web.UI.Client/package.json index e8c3085c05..9811efe485 100644 --- a/src/Umbraco.Web.UI.Client/package.json +++ b/src/Umbraco.Web.UI.Client/package.json @@ -34,6 +34,7 @@ "./document-type": "./dist-cms/packages/documents/document-types/index.js", "./document": "./dist-cms/packages/documents/documents/index.js", "./dynamic-root": "./dist-cms/packages/dynamic-root/index.js", + "./entity": "./dist-cms/packages/core/entity/index.js", "./entity-action": "./dist-cms/packages/core/entity-action/index.js", "./entity-bulk-action": "./dist-cms/packages/core/entity-bulk-action/index.js", "./event": "./dist-cms/packages/core/event/index.js", diff --git a/src/Umbraco.Web.UI.Client/tsconfig.json b/src/Umbraco.Web.UI.Client/tsconfig.json index 33bf53145e..50c7d953fd 100644 --- a/src/Umbraco.Web.UI.Client/tsconfig.json +++ b/src/Umbraco.Web.UI.Client/tsconfig.json @@ -52,6 +52,7 @@ "@umbraco-cms/backoffice/document-type": ["./src/packages/documents/document-types/index.ts"], "@umbraco-cms/backoffice/document": ["./src/packages/documents/documents/index.ts"], "@umbraco-cms/backoffice/dynamic-root": ["./src/packages/dynamic-root/index.ts"], + "@umbraco-cms/backoffice/entity": ["./src/packages/core/entity/index.ts"], "@umbraco-cms/backoffice/entity-action": ["./src/packages/core/entity-action/index.ts"], "@umbraco-cms/backoffice/entity-bulk-action": ["./src/packages/core/entity-bulk-action/index.ts"], "@umbraco-cms/backoffice/event": ["./src/packages/core/event/index.ts"], From c4d08b92b1c2be5f90d43b2fae73dba20b9c7d57 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Fri, 5 Apr 2024 18:32:20 +0200 Subject: [PATCH 02/11] add entity context --- .../core/entity/entity.context-token.ts | 4 ++ .../packages/core/entity/entity.context.ts | 42 +++++++++++++++++++ 2 files changed, 46 insertions(+) create mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/entity/entity.context-token.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/entity/entity.context.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/entity/entity.context-token.ts b/src/Umbraco.Web.UI.Client/src/packages/core/entity/entity.context-token.ts new file mode 100644 index 0000000000..252e6ef906 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/entity/entity.context-token.ts @@ -0,0 +1,4 @@ +import type { UmbEntityContext } from './entity.context.js'; +import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; + +export const UMB_ENTITY_CONTEXT = new UmbContextToken('UmbEntityContext'); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/entity/entity.context.ts b/src/Umbraco.Web.UI.Client/src/packages/core/entity/entity.context.ts new file mode 100644 index 0000000000..f0b3620555 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/entity/entity.context.ts @@ -0,0 +1,42 @@ +import { UmbContextBase } from '@umbraco-cms/backoffice/class-api'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import { UmbStringState } from '@umbraco-cms/backoffice/observable-api'; + +/** + * UmbEntityContext + * @export + * @class UmbEntityContext + * @extends {UmbContextBase} + */ +export class UmbEntityContext extends UmbContextBase { + #entityType = new UmbStringState(undefined); + public readonly entityType = this.#entityType.asObservable(); + + #unique = new UmbStringState(undefined); + public readonly unique = this.#unique.asObservable(); + + /** + * Creates an instance of UmbEntityContext. + * @param {UmbControllerHost} host + * @memberof UmbEntityContext + */ + constructor(host: UmbControllerHost) { + super(host, 'entity'); + } + + setEntityType(entityType: string | undefined) { + this.#entityType.setValue(entityType); + } + + getEntityType() { + return this.#entityType.getValue(); + } + + setUnique(unique: string | null | undefined) { + this.#unique.setValue(unique); + } + + getUnique() { + return this.#unique.getValue(); + } +} From f8a0b89a9b9752d0e28ca43e8d1219bc88f8d9b9 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Fri, 5 Apr 2024 18:32:49 +0200 Subject: [PATCH 03/11] wip entity context in menu --- .../section-sidebar-context-menu.element.ts | 32 +++++++++++++++---- 1 file changed, 25 insertions(+), 7 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/section/section-sidebar-context-menu/section-sidebar-context-menu.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/section/section-sidebar-context-menu/section-sidebar-context-menu.element.ts index 02b1b834e0..d7df433fe3 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/section/section-sidebar-context-menu/section-sidebar-context-menu.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/section/section-sidebar-context-menu/section-sidebar-context-menu.element.ts @@ -3,6 +3,9 @@ import { UMB_SECTION_SIDEBAR_CONTEXT } from '../section-sidebar/index.js'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { css, html, nothing, customElement, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; +import { UmbContextBase } from '@umbraco-cms/backoffice/class-api'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import { UmbStringState, observeMultiple } from '@umbraco-cms/backoffice/observable-api'; @customElement('umb-section-sidebar-context-menu') export class UmbSectionSidebarContextMenuElement extends UmbLitElement { @@ -20,31 +23,47 @@ export class UmbSectionSidebarContextMenuElement extends UmbLitElement { @state() private _headline?: string; + #entityContext = new UmbEntityContext(this); + constructor() { super(); this.consumeContext(UMB_SECTION_SIDEBAR_CONTEXT, (instance) => { this.#sectionSidebarContext = instance; + this.#observeEntityModel(); if (this.#sectionSidebarContext) { // make prettier not break the lines on the next 4 lines: // prettier-ignore this.observe( this.#sectionSidebarContext.contextMenuIsOpen, (value) => (this._isOpen = value), '_observeContextMenuIsOpen'); // prettier-ignore - this.observe(this.#sectionSidebarContext.unique, (value) => (this._unique = value), '_observeUnique'); - // prettier-ignore - this.observe(this.#sectionSidebarContext.entityType, (value) => (this._entityType = value), '_observeEntityType'); - // prettier-ignore this.observe(this.#sectionSidebarContext.headline, (value) => (this._headline = value), '_observeHeadline'); } else { this.removeUmbControllerByAlias('_observeContextMenuIsOpen'); - this.removeUmbControllerByAlias('_observeUnique'); - this.removeUmbControllerByAlias('_observeEntityType'); this.removeUmbControllerByAlias('_observeHeadline'); } }); } + #observeEntityModel() { + if (!this.#sectionSidebarContext) { + this.removeUmbControllerByAlias('_observeEntityModel'); + return; + } + + this.observe( + observeMultiple([this.#sectionSidebarContext.unique, this.#sectionSidebarContext.entityType]), + (values) => { + this._unique = values[0]; + this._entityType = values[1]; + + this.#entityContext.setEntityType(this._entityType); + this.#entityContext.setUnique(this._unique); + }, + ), + '_observeEntityModel'; + } + #closeContextMenu() { this.#sectionSidebarContext?.closeContextMenu(); } @@ -70,7 +89,6 @@ export class UmbSectionSidebarContextMenuElement extends UmbLitElement { return this._isOpen ? html`
` : nothing; } - // TODO: allow different views depending on left or right click #renderModal() { return this._isOpen && this._unique !== undefined && this._entityType ? html`
From 329aa0912243421ebe7c22edc098341cd67f5acd Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Fri, 5 Apr 2024 21:23:35 +0200 Subject: [PATCH 04/11] use context token --- .../src/packages/core/entity/entity.context.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/entity/entity.context.ts b/src/Umbraco.Web.UI.Client/src/packages/core/entity/entity.context.ts index f0b3620555..acb9abfc8b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/entity/entity.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/entity/entity.context.ts @@ -1,3 +1,4 @@ +import { UMB_ENTITY_CONTEXT } from './entity.context-token.js'; import { UmbContextBase } from '@umbraco-cms/backoffice/class-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbStringState } from '@umbraco-cms/backoffice/observable-api'; @@ -21,7 +22,7 @@ export class UmbEntityContext extends UmbContextBase { * @memberof UmbEntityContext */ constructor(host: UmbControllerHost) { - super(host, 'entity'); + super(host, UMB_ENTITY_CONTEXT); } setEntityType(entityType: string | undefined) { From 531df318725053c55f2727c7c5e14e489e15740e Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Fri, 5 Apr 2024 21:23:47 +0200 Subject: [PATCH 05/11] export from entity module --- src/Umbraco.Web.UI.Client/src/packages/core/entity/index.ts | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/entity/index.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/entity/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/entity/index.ts new file mode 100644 index 0000000000..74308b50c9 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/entity/index.ts @@ -0,0 +1,2 @@ +export { UMB_ENTITY_CONTEXT } from './entity.context-token.js'; +export { UmbEntityContext } from './entity.context.js'; From 93c42d8780da82fc893a683494a0648b9f58d128 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Fri, 5 Apr 2024 21:24:35 +0200 Subject: [PATCH 06/11] provide from entity action list --- .../core/entity-action/entity-action-list.element.ts | 8 +++++++- .../section-sidebar-context-menu.element.ts | 10 ++-------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/entity-action-list.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/entity-action-list.element.ts index 4db7611b63..a13e396da5 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/entity-action-list.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/entity-action-list.element.ts @@ -1,3 +1,4 @@ +import { UmbEntityContext } from '@umbraco-cms/backoffice/entity'; import type { UmbEntityActionArgs } from './types.js'; import { html, customElement, property, state, css } from '@umbraco-cms/backoffice/external/lit'; import type { ManifestEntityAction, MetaEntityAction } from '@umbraco-cms/backoffice/extension-registry'; @@ -43,9 +44,14 @@ export class UmbEntityActionListElement extends UmbLitElement { [UmbEntityActionArgs] >; + #entityContext = new UmbEntityContext(this); + #generateApiArgs() { if (!this._props.entityType || this._props.unique !== undefined) return; + this.#entityContext.setEntityType(this._props.entityType); + this.#entityContext.setUnique(this._props.unique); + this._apiArgs = (manifest: ManifestEntityAction) => { return [{ entityType: this._props.entityType!, unique: this._props.unique!, meta: manifest.meta }]; }; @@ -59,7 +65,7 @@ export class UmbEntityActionListElement extends UmbLitElement { .filter=${this._filter} .elementProps=${this._props} .apiArgs=${this._apiArgs}> - ` + ` : ''; } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/section/section-sidebar-context-menu/section-sidebar-context-menu.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/section/section-sidebar-context-menu/section-sidebar-context-menu.element.ts index d7df433fe3..c0d0f2953c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/section/section-sidebar-context-menu/section-sidebar-context-menu.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/section/section-sidebar-context-menu/section-sidebar-context-menu.element.ts @@ -1,11 +1,10 @@ +import { UmbEntityContext } from '@umbraco-cms/backoffice/entity'; import type { UmbSectionSidebarContext } from '../section-sidebar/index.js'; import { UMB_SECTION_SIDEBAR_CONTEXT } from '../section-sidebar/index.js'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { css, html, nothing, customElement, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; -import { UmbContextBase } from '@umbraco-cms/backoffice/class-api'; -import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; -import { UmbStringState, observeMultiple } from '@umbraco-cms/backoffice/observable-api'; +import { observeMultiple } from '@umbraco-cms/backoffice/observable-api'; @customElement('umb-section-sidebar-context-menu') export class UmbSectionSidebarContextMenuElement extends UmbLitElement { @@ -23,8 +22,6 @@ export class UmbSectionSidebarContextMenuElement extends UmbLitElement { @state() private _headline?: string; - #entityContext = new UmbEntityContext(this); - constructor() { super(); @@ -56,9 +53,6 @@ export class UmbSectionSidebarContextMenuElement extends UmbLitElement { (values) => { this._unique = values[0]; this._entityType = values[1]; - - this.#entityContext.setEntityType(this._entityType); - this.#entityContext.setUnique(this._unique); }, ), '_observeEntityModel'; From 711420944742e3d92abdff5b710e738746bafcb1 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Sat, 6 Apr 2024 22:31:53 +0200 Subject: [PATCH 07/11] pass unique --- .../packages/core/entity-action/entity-action-list.element.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/entity-action-list.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/entity-action-list.element.ts index a13e396da5..b9c3f9d207 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/entity-action-list.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/entity-action-list.element.ts @@ -47,7 +47,7 @@ export class UmbEntityActionListElement extends UmbLitElement { #entityContext = new UmbEntityContext(this); #generateApiArgs() { - if (!this._props.entityType || this._props.unique !== undefined) return; + if (!this._props.entityType || this._props.unique === undefined) return; this.#entityContext.setEntityType(this._props.entityType); this.#entityContext.setUnique(this._props.unique); From c24ea48470e7a4184682a70b4a3ffc39c9b38b42 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Sat, 6 Apr 2024 22:32:25 +0200 Subject: [PATCH 08/11] remove unused --- .../section-sidebar-context-menu.element.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/section/section-sidebar-context-menu/section-sidebar-context-menu.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/section/section-sidebar-context-menu/section-sidebar-context-menu.element.ts index c0d0f2953c..574a0e7085 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/section/section-sidebar-context-menu/section-sidebar-context-menu.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/section/section-sidebar-context-menu/section-sidebar-context-menu.element.ts @@ -1,4 +1,3 @@ -import { UmbEntityContext } from '@umbraco-cms/backoffice/entity'; import type { UmbSectionSidebarContext } from '../section-sidebar/index.js'; import { UMB_SECTION_SIDEBAR_CONTEXT } from '../section-sidebar/index.js'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; From 4a6d52f5825277cd7db8732a966d89a55159fd5b Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Sat, 6 Apr 2024 22:58:31 +0200 Subject: [PATCH 09/11] provide entity context from document workspace --- .../documents/workspace/document-workspace.context.ts | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace.context.ts index 927acdbecb..c017ba460c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace.context.ts @@ -1,3 +1,4 @@ +import { UmbEntityContext } from '@umbraco-cms/backoffice/entity'; import { UmbDocumentTypeDetailRepository } from '../../document-types/repository/detail/document-type-detail.repository.js'; import { UmbDocumentPropertyDataContext } from '../property-dataset-context/document-property-dataset-context.js'; import { UMB_DOCUMENT_ENTITY_TYPE } from '../entity.js'; @@ -132,6 +133,9 @@ export class UmbDocumentWorkspaceContext }, ); + // TODO: this should be set up for all entity workspace contexts in a base class + #entityContext = new UmbEntityContext(this); + constructor(host: UmbControllerHost) { super(host, UMB_DOCUMENT_WORKSPACE_ALIAS); @@ -162,6 +166,8 @@ export class UmbDocumentWorkspaceContext component: () => import('./document-workspace-editor.element.js'), setup: (_component, info) => { const unique = info.match.params.unique; + this.#entityContext.setEntityType(UMB_DOCUMENT_ENTITY_TYPE); + this.#entityContext.setUnique(unique); this.load(unique); }, }, From 28d7fad59ffd058b3d013ad99a72cba257bf991e Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Sun, 7 Apr 2024 14:51:40 +0200 Subject: [PATCH 10/11] add js doc --- .../packages/core/entity/entity.context.ts | 24 +++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/entity/entity.context.ts b/src/Umbraco.Web.UI.Client/src/packages/core/entity/entity.context.ts index acb9abfc8b..8f193465ae 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/entity/entity.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/entity/entity.context.ts @@ -4,7 +4,7 @@ import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbStringState } from '@umbraco-cms/backoffice/observable-api'; /** - * UmbEntityContext + * Provides the entity context * @export * @class UmbEntityContext * @extends {UmbContextBase} @@ -25,18 +25,38 @@ export class UmbEntityContext extends UmbContextBase { super(host, UMB_ENTITY_CONTEXT); } + /** + * Set the entity type + * @param {string | undefined} entityType + * @memberof UmbEntityContext + */ setEntityType(entityType: string | undefined) { this.#entityType.setValue(entityType); } - getEntityType() { + /** + * Get the entity type + * @returns {string | undefined} + * @memberof UmbEntityContext + */ + getEntityType(): string | undefined { return this.#entityType.getValue(); } + /** + * Set the unique + * @param {string | null | undefined} unique + * @memberof UmbEntityContext + */ setUnique(unique: string | null | undefined) { this.#unique.setValue(unique); } + /** + * Get the unique + * @returns {string | null | undefined} + * @memberof UmbEntityContext + */ getUnique() { return this.#unique.getValue(); } From fc6c76bccb9322485a86a5ffe08ca3a77c30e95c Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Sun, 7 Apr 2024 15:31:07 +0200 Subject: [PATCH 11/11] add tests to entity context --- .../core/entity/entity.context.test.ts | 77 +++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/entity/entity.context.test.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/entity/entity.context.test.ts b/src/Umbraco.Web.UI.Client/src/packages/core/entity/entity.context.test.ts new file mode 100644 index 0000000000..e01e1937b0 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/entity/entity.context.test.ts @@ -0,0 +1,77 @@ +import { expect } from '@open-wc/testing'; +import { UmbEntityContext } from './entity.context.js'; +import { UMB_ENTITY_CONTEXT } from './entity.context-token.js'; +import { Observable } from '@umbraco-cms/backoffice/external/rxjs'; +import { customElement } from '@umbraco-cms/backoffice/external/lit'; +import { UmbElementMixin } from '@umbraco-cms/backoffice/element-api'; + +@customElement('umb-test-host') +export class UmbTestHostElement extends UmbElementMixin(HTMLElement) {} + +@customElement('umb-test-child') +export class UmbTestChildElement extends UmbElementMixin(HTMLElement) {} + +describe('UmbEntityContext', () => { + let context: UmbEntityContext; + let host: UmbTestHostElement; + let child: UmbTestChildElement; + + beforeEach(() => { + host = new UmbTestHostElement(); + child = new UmbTestChildElement(); + host.appendChild(child); + document.body.appendChild(host); + context = new UmbEntityContext(host); + }); + + describe('Public API', () => { + describe('properties', () => { + it('has a entity type property', () => { + expect(context).to.have.property('entityType').to.be.an.instanceOf(Observable); + }); + + it('has a unique property', () => { + expect(context).to.have.property('unique').to.be.an.instanceOf(Observable); + }); + }); + + describe('methods', () => { + it('has a getEntityType method', () => { + expect(context).to.have.property('getEntityType').that.is.a('function'); + }); + + it('has a setEntityType method', () => { + expect(context).to.have.property('setEntityType').that.is.a('function'); + }); + + it('has a getUnique method', () => { + expect(context).to.have.property('getUnique').that.is.a('function'); + }); + + it('has a setUnique method', () => { + expect(context).to.have.property('setUnique').that.is.a('function'); + }); + }); + }); + + describe('set and get entity type', () => { + it('should set entity type', () => { + context.setEntityType('entity-type'); + expect(context.getEntityType()).to.equal('entity-type'); + }); + }); + + describe('set and get unique', () => { + it('should set unique', () => { + context.setUnique('unique-value'); + expect(context.getUnique()).to.equal('unique-value'); + }); + }); + + describe('it is provided as a context', () => { + it('should be provided as a context', async () => { + const providedContext = await child.getContext(UMB_ENTITY_CONTEXT); + expect(providedContext).to.equal(context); + }); + }); +});