diff --git a/src/Umbraco.Web.UI.Client/src/core/context/context-provider.element.test.ts b/src/Umbraco.Web.UI.Client/src/core/context/context-provider.element.test.ts new file mode 100644 index 0000000000..e8676ab1eb --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/core/context/context-provider.element.test.ts @@ -0,0 +1,40 @@ +import { expect, fixture, html } from '@open-wc/testing'; +import { LitElement } from 'lit'; +import { customElement } from 'lit/decorators.js'; + +import { UmbContextConsumerMixin } from './context-consumer.mixin'; +import { UmbContextProviderElement } from './context-provider.element'; + +@customElement('umb-context-test') +export class ContextTestElement extends UmbContextConsumerMixin(LitElement) { + public value: string | null = null; + constructor() { + super(); + this.consumeContext('test-context', (value) => { + this.value = value; + }); + } +} + +describe('UmbContextProvider', () => { + let element: UmbContextProviderElement; + let consumer: ContextTestElement; + const contextValue = 'test-value'; + + beforeEach(async () => { + element = await fixture( + html` + + ` + ); + consumer = element.getElementsByTagName('umb-context-test')[0] as ContextTestElement; + }); + + it('is defined with its own instance', () => { + expect(element).to.be.instanceOf(UmbContextProviderElement); + }); + + it('provides the context', () => { + expect(consumer.value).to.equal(contextValue); + }); +}); diff --git a/src/Umbraco.Web.UI.Client/src/core/context/context-provider.element.ts b/src/Umbraco.Web.UI.Client/src/core/context/context-provider.element.ts index 172c8aa476..575e81f818 100644 --- a/src/Umbraco.Web.UI.Client/src/core/context/context-provider.element.ts +++ b/src/Umbraco.Web.UI.Client/src/core/context/context-provider.element.ts @@ -10,7 +10,7 @@ export class UmbContextProviderElement extends UmbContextProviderMixin(LitElemen * @required */ @property({ type: Object }) - value!: unknown; + value: unknown; /** * The key to provide to the context.