From dcb5722464214f56fe1bf1ebb95a3f0089220932 Mon Sep 17 00:00:00 2001
From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com>
Date: Tue, 9 Aug 2022 15:38:53 +0200
Subject: [PATCH 01/19] add import for @umbraco-ui/uui and router-slot to test
runner config to correctly register implicit uui components
---
src/Umbraco.Web.UI.Client/web-test-runner.config.mjs | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/src/Umbraco.Web.UI.Client/web-test-runner.config.mjs b/src/Umbraco.Web.UI.Client/web-test-runner.config.mjs
index 40121901ae..7e846d09ed 100644
--- a/src/Umbraco.Web.UI.Client/web-test-runner.config.mjs
+++ b/src/Umbraco.Web.UI.Client/web-test-runner.config.mjs
@@ -14,8 +14,10 @@ export default {
`
-
`,
From 23d82837431778ce82b58f6703a159bbd8b894b8 Mon Sep 17 00:00:00 2001
From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com>
Date: Tue, 9 Aug 2022 15:39:07 +0200
Subject: [PATCH 02/19] import from '.'
---
.../core/services/notification/notification-handler.test.ts | 4 +++-
.../core/services/notification/notifications.service.test.ts | 3 ++-
2 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/src/Umbraco.Web.UI.Client/src/core/services/notification/notification-handler.test.ts b/src/Umbraco.Web.UI.Client/src/core/services/notification/notification-handler.test.ts
index 7684463c85..734397e934 100644
--- a/src/Umbraco.Web.UI.Client/src/core/services/notification/notification-handler.test.ts
+++ b/src/Umbraco.Web.UI.Client/src/core/services/notification/notification-handler.test.ts
@@ -1,8 +1,10 @@
import { assert, expect } from '@open-wc/testing';
import { validate as uuidValidate } from 'uuid';
+
import { UmbNotificationHandler } from './notification-handler';
+
import type { UmbNotificationDefaultData } from './layouts/default';
-import type { UmbNotificationOptions } from './';
+import type { UmbNotificationOptions } from '.';
describe('UCPNotificationHandler', () => {
let notificationHandler: UmbNotificationHandler;
diff --git a/src/Umbraco.Web.UI.Client/src/core/services/notification/notifications.service.test.ts b/src/Umbraco.Web.UI.Client/src/core/services/notification/notifications.service.test.ts
index b828d053aa..8a9f5877a8 100644
--- a/src/Umbraco.Web.UI.Client/src/core/services/notification/notifications.service.test.ts
+++ b/src/Umbraco.Web.UI.Client/src/core/services/notification/notifications.service.test.ts
@@ -1,5 +1,6 @@
import { expect } from '@open-wc/testing';
-import { UmbNotificationService, UmbNotificationHandler } from './';
+
+import { UmbNotificationHandler, UmbNotificationService } from '.';
describe('UCPNotificationService', () => {
let notificationService: UmbNotificationService;
From 1b953c44307c6b38fffc5f7756d1519cea2fc5aa Mon Sep 17 00:00:00 2001
From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com>
Date: Tue, 9 Aug 2022 15:42:05 +0200
Subject: [PATCH 03/19] add correct await usage for chai accessible()
---
.../src/installer/installer.test.ts | 29 ++++++++++---------
1 file changed, 16 insertions(+), 13 deletions(-)
diff --git a/src/Umbraco.Web.UI.Client/src/installer/installer.test.ts b/src/Umbraco.Web.UI.Client/src/installer/installer.test.ts
index 56b019d8b6..a93083013c 100644
--- a/src/Umbraco.Web.UI.Client/src/installer/installer.test.ts
+++ b/src/Umbraco.Web.UI.Client/src/installer/installer.test.ts
@@ -1,4 +1,7 @@
-import { html, fixture, expect } from '@open-wc/testing';
+import '.';
+
+import { expect, fixture, html } from '@open-wc/testing';
+
import { UmbInstallerConsent } from './installer-consent.element';
import { UmbInstallerDatabase } from './installer-database.element';
import { UmbInstallerInstalling } from './installer-installing.element';
@@ -13,12 +16,12 @@ describe('UmbInstaller', () => {
element = await fixture(html``);
});
- it('is defined with its own instance', async () => {
+ it('is defined with its own instance', () => {
expect(element).to.be.instanceOf(UmbInstaller);
});
it('passes the a11y audit', async () => {
- expect(element).shadowDom.to.be.accessible();
+ await expect(element).shadowDom.to.be.accessible();
});
});
@@ -29,12 +32,12 @@ describe('UmbInstallerLayout', () => {
element = await fixture(html``);
});
- it('is defined with its own instance', async () => {
+ it('is defined with its own instance', () => {
expect(element).to.be.instanceOf(UmbInstallerLayout);
});
it('passes the a11y audit', async () => {
- expect(element).shadowDom.to.be.accessible();
+ await expect(element).shadowDom.to.be.accessible();
});
});
@@ -45,12 +48,12 @@ describe('UmbInstallerUser', () => {
element = await fixture(html``);
});
- it('is defined with its own instance', async () => {
+ it('is defined with its own instance', () => {
expect(element).to.be.instanceOf(UmbInstallerUser);
});
it('passes the a11y audit', async () => {
- expect(element).shadowDom.to.be.accessible();
+ await expect(element).to.be.accessible();
});
});
@@ -61,12 +64,12 @@ describe('UmbInstallerConsent', () => {
element = await fixture(html``);
});
- it('is defined with its own instance', async () => {
+ it('is defined with its own instance', () => {
expect(element).to.be.instanceOf(UmbInstallerConsent);
});
it('passes the a11y audit', async () => {
- expect(element).shadowDom.to.be.accessible();
+ await expect(element).shadowDom.to.be.accessible();
});
});
@@ -77,12 +80,12 @@ describe('UmbInstallerDatabase', () => {
element = await fixture(html``);
});
- it('is defined with its own instance', async () => {
+ it('is defined with its own instance', () => {
expect(element).to.be.instanceOf(UmbInstallerDatabase);
});
it('passes the a11y audit', async () => {
- expect(element).shadowDom.to.be.accessible();
+ await expect(element).shadowDom.to.be.accessible();
});
});
@@ -93,11 +96,11 @@ describe('UmbInstallerInstalling', () => {
element = await fixture(html``);
});
- it('is defined with its own instance', async () => {
+ it('is defined with its own instance', () => {
expect(element).to.be.instanceOf(UmbInstallerInstalling);
});
it('passes the a11y audit', async () => {
- expect(element).shadowDom.to.be.accessible();
+ await expect(element).shadowDom.to.be.accessible();
});
});
From 0a16d9921e0cc797fe33fbec96f7d1d219900bf5 Mon Sep 17 00:00:00 2001
From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com>
Date: Tue, 9 Aug 2022 15:47:05 +0200
Subject: [PATCH 04/19] add test for upgrader-view
---
.../src/upgrader/upgrader-view.test.ts | 19 +++++++++++++++++++
.../src/upgrader/upgrader.test.ts | 4 ----
2 files changed, 19 insertions(+), 4 deletions(-)
create mode 100644 src/Umbraco.Web.UI.Client/src/upgrader/upgrader-view.test.ts
diff --git a/src/Umbraco.Web.UI.Client/src/upgrader/upgrader-view.test.ts b/src/Umbraco.Web.UI.Client/src/upgrader/upgrader-view.test.ts
new file mode 100644
index 0000000000..74bc26db1d
--- /dev/null
+++ b/src/Umbraco.Web.UI.Client/src/upgrader/upgrader-view.test.ts
@@ -0,0 +1,19 @@
+import { expect, fixture, html } from '@open-wc/testing';
+
+import { UmbUpgraderView } from './upgrader-view.element';
+
+describe('UmbUpgrader', () => {
+ let element: UmbUpgraderView;
+
+ beforeEach(async () => {
+ element = await fixture(html``);
+ });
+
+ it('is defined with its own instance', () => {
+ expect(element).to.be.instanceOf(UmbUpgraderView);
+ });
+
+ it('passes the a11y audit', async () => {
+ await expect(element).shadowDom.to.be.accessible();
+ });
+});
diff --git a/src/Umbraco.Web.UI.Client/src/upgrader/upgrader.test.ts b/src/Umbraco.Web.UI.Client/src/upgrader/upgrader.test.ts
index cd6871b717..152dacda45 100644
--- a/src/Umbraco.Web.UI.Client/src/upgrader/upgrader.test.ts
+++ b/src/Umbraco.Web.UI.Client/src/upgrader/upgrader.test.ts
@@ -12,8 +12,4 @@ describe('UmbUpgrader', () => {
it('is defined with its own instance', () => {
expect(element).to.be.instanceOf(UmbUpgrader);
});
-
- it('passes the a11y audit', () => {
- expect(element).shadowDom.to.be.accessible();
- });
});
From 91e3a76afba4dcc60a97415daf33262597934a4c Mon Sep 17 00:00:00 2001
From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com>
Date: Tue, 9 Aug 2022 15:57:36 +0200
Subject: [PATCH 05/19] define correct name of upgraderview test
---
src/Umbraco.Web.UI.Client/src/upgrader/upgrader-view.test.ts | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/Umbraco.Web.UI.Client/src/upgrader/upgrader-view.test.ts b/src/Umbraco.Web.UI.Client/src/upgrader/upgrader-view.test.ts
index 74bc26db1d..86cfd581ca 100644
--- a/src/Umbraco.Web.UI.Client/src/upgrader/upgrader-view.test.ts
+++ b/src/Umbraco.Web.UI.Client/src/upgrader/upgrader-view.test.ts
@@ -2,7 +2,7 @@ import { expect, fixture, html } from '@open-wc/testing';
import { UmbUpgraderView } from './upgrader-view.element';
-describe('UmbUpgrader', () => {
+describe('UmbUpgraderView', () => {
let element: UmbUpgraderView;
beforeEach(async () => {
From fc7f539db542ad705755e5fe2b74496f4ebe1c95 Mon Sep 17 00:00:00 2001
From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com>
Date: Tue, 9 Aug 2022 15:57:44 +0200
Subject: [PATCH 06/19] add test for umb-context-provider
---
.../context/context-provider.element.test.ts | 40 +++++++++++++++++++
.../core/context/context-provider.element.ts | 2 +-
2 files changed, 41 insertions(+), 1 deletion(-)
create mode 100644 src/Umbraco.Web.UI.Client/src/core/context/context-provider.element.test.ts
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.
From c8831b599a641ce8bf1b616a14a44aed1f3da0be Mon Sep 17 00:00:00 2001
From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com>
Date: Tue, 9 Aug 2022 16:18:40 +0200
Subject: [PATCH 07/19] add tests for login element
---
.../src/auth/login/login.element.ts | 4 ++--
.../src/auth/login/login.test.ts | 21 +++++++++++++++++++
2 files changed, 23 insertions(+), 2 deletions(-)
create mode 100644 src/Umbraco.Web.UI.Client/src/auth/login/login.test.ts
diff --git a/src/Umbraco.Web.UI.Client/src/auth/login/login.element.ts b/src/Umbraco.Web.UI.Client/src/auth/login/login.element.ts
index 216fb81965..9fe0e552f7 100644
--- a/src/Umbraco.Web.UI.Client/src/auth/login/login.element.ts
+++ b/src/Umbraco.Web.UI.Client/src/auth/login/login.element.ts
@@ -79,7 +79,7 @@ export default class UmbLogin extends LitElement {