From 4249ae1f7dabca46ae878d3097fb2ca682317e22 Mon Sep 17 00:00:00 2001 From: Janne Savolainen Date: Mon, 17 Oct 2022 14:59:34 +0300 Subject: [PATCH] Consolidate discovery of HTML elements in some tests Co-authored-by: Mikko Aspiala Signed-off-by: Janne Savolainen --- ...on-to-application-preferences.test.ts.snap | 56 +++++---- ...igation-to-editor-preferences.test.ts.snap | 52 ++++++--- ...ion-to-kubernetes-preferences.test.ts.snap | 50 ++++++--- ...vigation-to-proxy-preferences.test.ts.snap | 56 +++++---- ...ion-to-telemetry-preferences.test.tsx.snap | 106 ++++++++++-------- ...ation-to-terminal-preferences.test.ts.snap | 48 +++++--- ...gation-using-application-menu.test.ts.snap | 20 +++- .../navigation-using-tray.test.ts.snap | 20 +++- ...igation-to-application-preferences.test.ts | 14 ++- .../navigation-to-editor-preferences.test.ts | 12 +- ...vigation-to-kubernetes-preferences.test.ts | 11 +- .../navigation-to-proxy-preferences.test.ts | 11 +- ...vigation-to-telemetry-preferences.test.tsx | 11 +- ...navigation-to-terminal-preferences.test.ts | 12 +- .../navigation-using-application-menu.test.ts | 19 +++- .../preferences/navigation-using-tray.test.ts | 19 +++- .../application-preference-page.tsx | 2 +- .../editor/editor-preference-page.tsx | 2 +- .../kubernetes/kubernetes-page.tsx | 2 +- .../proxy/proxy-preference-page.tsx | 2 +- .../telemetry/telemetry-page.tsx | 2 +- .../terminal/terminal-page.tsx | 2 +- .../preferences-navigation-tab.tsx | 1 + 23 files changed, 349 insertions(+), 181 deletions(-) diff --git a/src/features/preferences/__snapshots__/navigation-to-application-preferences.test.ts.snap b/src/features/preferences/__snapshots__/navigation-to-application-preferences.test.ts.snap index ed6248be68..f4bb03e7a5 100644 --- a/src/features/preferences/__snapshots__/navigation-to-application-preferences.test.ts.snap +++ b/src/features/preferences/__snapshots__/navigation-to-application-preferences.test.ts.snap @@ -86,13 +86,15 @@ exports[`preferences - navigation to application preferences given in some child class="Tabs flex column" >
Preferences
+
@@ -161,14 +168,15 @@ exports[`preferences - navigation to application preferences given in some child class="content" >
+

+ Proxy +

-

- Proxy -

@@ -224,11 +232,7 @@ exports[`preferences - navigation to application preferences given in some child - This will make Lens to trust ANY certificate authority without any validations. - - Needed with some corporate proxies that do certificate re-writing. - - Does not affect cluster communications! + This will make Lens to trust ANY certificate authority without any validations. Needed with some corporate proxies that do certificate re-writing. Does not affect cluster communications!
@@ -419,13 +423,15 @@ exports[`preferences - navigation to application preferences given in some child class="Tabs flex column" >
Preferences
+
@@ -494,6 +505,7 @@ exports[`preferences - navigation to application preferences given in some child class="content" >

Preferences
+
@@ -161,6 +168,7 @@ exports[`preferences - navigation to editor preferences given in preferences, wh class="content" >

Preferences
+
@@ -818,6 +833,7 @@ exports[`preferences - navigation to editor preferences given in preferences, wh class="content" >

Editor configuration

-
- Minimap - -
+
+ Minimap + +
diff --git a/src/features/preferences/__snapshots__/navigation-to-kubernetes-preferences.test.ts.snap b/src/features/preferences/__snapshots__/navigation-to-kubernetes-preferences.test.ts.snap index 506b3bca81..91c78fe10a 100644 --- a/src/features/preferences/__snapshots__/navigation-to-kubernetes-preferences.test.ts.snap +++ b/src/features/preferences/__snapshots__/navigation-to-kubernetes-preferences.test.ts.snap @@ -86,13 +86,15 @@ exports[`preferences - navigation to kubernetes preferences given in preferences class="Tabs flex column" >
Preferences
+
@@ -161,6 +168,7 @@ exports[`preferences - navigation to kubernetes preferences given in preferences class="content" >

Preferences
+
@@ -818,16 +833,17 @@ exports[`preferences - navigation to kubernetes preferences given in preferences class="content" >
+

+ Kubernetes +

-

- Kubernetes -

Preferences
+
@@ -161,6 +168,7 @@ exports[`preferences - navigation to proxy preferences given in preferences, whe class="content" >

Preferences
+
@@ -818,14 +833,15 @@ exports[`preferences - navigation to proxy preferences given in preferences, whe class="content" >
+

+ Proxy +

-

- Proxy -

@@ -881,11 +897,7 @@ exports[`preferences - navigation to proxy preferences given in preferences, whe - This will make Lens to trust ANY certificate authority without any validations. - - Needed with some corporate proxies that do certificate re-writing. - - Does not affect cluster communications! + This will make Lens to trust ANY certificate authority without any validations. Needed with some corporate proxies that do certificate re-writing. Does not affect cluster communications!
diff --git a/src/features/preferences/__snapshots__/navigation-to-telemetry-preferences.test.tsx.snap b/src/features/preferences/__snapshots__/navigation-to-telemetry-preferences.test.tsx.snap index 84d6a6699b..9ed3c4e871 100644 --- a/src/features/preferences/__snapshots__/navigation-to-telemetry-preferences.test.tsx.snap +++ b/src/features/preferences/__snapshots__/navigation-to-telemetry-preferences.test.tsx.snap @@ -74,7 +74,7 @@ exports[`preferences - navigation to telemetry preferences given URL for Sentry />
+
@@ -173,6 +181,7 @@ exports[`preferences - navigation to telemetry preferences given URL for Sentry class="content" >

Telemetry

-
-
-
+
Preferences
+
@@ -480,6 +493,7 @@ exports[`preferences - navigation to telemetry preferences given in preferences, class="content" >

Preferences
- +
@@ -1149,6 +1158,7 @@ exports[`preferences - navigation to telemetry preferences given in preferences, class="content" >

+
@@ -2113,6 +2130,7 @@ exports[`preferences - navigation to telemetry preferences given no URL for Sent class="content" >

Preferences
+
@@ -161,6 +168,7 @@ exports[`preferences - navigation to terminal preferences given in preferences, class="content" >

Preferences
+
@@ -817,8 +832,13 @@ exports[`preferences - navigation to terminal preferences given in preferences,
-
-

+
+

Terminal

Preferences

+
@@ -379,6 +386,7 @@ exports[`preferences - navigation using application menu when navigating to pref class="content" >

Preferences
+
@@ -382,6 +389,7 @@ exports[`show-about-using-tray when navigating using tray renders 1`] = ` class="content" >

{ let builder: ApplicationBuilder; @@ -32,14 +33,17 @@ describe("preferences - navigation to application preferences", () => { }); it("does not show application preferences yet", () => { - const page = rendered.queryByTestId("application-preferences-page"); + const page = querySingleElement( + "preference-page", + "application", + )(rendered); expect(page).toBeNull(); }); describe("when navigating to application preferences using navigation", () => { beforeEach(() => { - builder.preferences.navigation.click("application"); + builder.preferences.navigation.click("app"); }); it("renders", () => { @@ -47,10 +51,14 @@ describe("preferences - navigation to application preferences", () => { }); it("shows application preferences", () => { - const page = rendered.getByTestId("application-preferences-page"); + const page = getSingleElement( + "preference-page", + "application", + )(rendered); expect(page).not.toBeNull(); }); }); }); }); + diff --git a/src/features/preferences/navigation-to-editor-preferences.test.ts b/src/features/preferences/navigation-to-editor-preferences.test.ts index 7a37abbc8c..1874e02f19 100644 --- a/src/features/preferences/navigation-to-editor-preferences.test.ts +++ b/src/features/preferences/navigation-to-editor-preferences.test.ts @@ -5,6 +5,7 @@ import type { RenderResult } from "@testing-library/react"; import type { ApplicationBuilder } from "../../renderer/components/test-utils/get-application-builder"; import { getApplicationBuilder } from "../../renderer/components/test-utils/get-application-builder"; +import { getSingleElement, querySingleElement } from "../../renderer/components/test-utils/discovery-of-html-elements"; describe("preferences - navigation to editor preferences", () => { let applicationBuilder: ApplicationBuilder; @@ -27,9 +28,11 @@ describe("preferences - navigation to editor preferences", () => { it("renders", () => { expect(rendered.container).toMatchSnapshot(); }); - it("does not show editor preferences yet", () => { - const page = rendered.queryByTestId("editor-preferences-page"); + const page = querySingleElement( + "preference-page", + "editor", + )(rendered); expect(page).toBeNull(); }); @@ -44,7 +47,10 @@ describe("preferences - navigation to editor preferences", () => { }); it("shows editor preferences", () => { - const page = rendered.getByTestId("editor-preferences-page"); + const page = getSingleElement( + "preference-page", + "editor", + )(rendered); expect(page).not.toBeNull(); }); diff --git a/src/features/preferences/navigation-to-kubernetes-preferences.test.ts b/src/features/preferences/navigation-to-kubernetes-preferences.test.ts index 25c1f0f72c..bf5a316bd4 100644 --- a/src/features/preferences/navigation-to-kubernetes-preferences.test.ts +++ b/src/features/preferences/navigation-to-kubernetes-preferences.test.ts @@ -7,6 +7,7 @@ import type { ApplicationBuilder } from "../../renderer/components/test-utils/ge import { getApplicationBuilder } from "../../renderer/components/test-utils/get-application-builder"; import callForPublicHelmRepositoriesInjectable from "../helm-charts/child-features/preferences/renderer/adding-of-public-helm-repository/public-helm-repositories/call-for-public-helm-repositories.injectable"; import getActiveHelmRepositoriesInjectable from "../../main/helm/repositories/get-active-helm-repositories/get-active-helm-repositories.injectable"; +import { getSingleElement, querySingleElement } from "../../renderer/components/test-utils/discovery-of-html-elements"; describe("preferences - navigation to kubernetes preferences", () => { let builder: ApplicationBuilder; @@ -42,7 +43,10 @@ describe("preferences - navigation to kubernetes preferences", () => { }); it("does not show kubernetes preferences yet", () => { - const page = rendered.queryByTestId("kubernetes-preferences-page"); + const page = querySingleElement( + "preference-page", + "kubernetes", + )(rendered); expect(page).toBeNull(); }); @@ -57,7 +61,10 @@ describe("preferences - navigation to kubernetes preferences", () => { }); it("shows kubernetes preferences", () => { - const page = rendered.getByTestId("kubernetes-preferences-page"); + const page = getSingleElement( + "preference-page", + "kubernetes", + )(rendered); expect(page).not.toBeNull(); }); diff --git a/src/features/preferences/navigation-to-proxy-preferences.test.ts b/src/features/preferences/navigation-to-proxy-preferences.test.ts index 976e9058ef..3bbb483196 100644 --- a/src/features/preferences/navigation-to-proxy-preferences.test.ts +++ b/src/features/preferences/navigation-to-proxy-preferences.test.ts @@ -5,6 +5,7 @@ import type { RenderResult } from "@testing-library/react"; import type { ApplicationBuilder } from "../../renderer/components/test-utils/get-application-builder"; import { getApplicationBuilder } from "../../renderer/components/test-utils/get-application-builder"; +import { getSingleElement, querySingleElement } from "../../renderer/components/test-utils/discovery-of-html-elements"; describe("preferences - navigation to proxy preferences", () => { let applicationBuilder: ApplicationBuilder; @@ -29,7 +30,10 @@ describe("preferences - navigation to proxy preferences", () => { }); it("does not show proxy preferences yet", () => { - const page = rendered.queryByTestId("proxy-preferences-page"); + const page = querySingleElement( + "preference-page", + "proxy", + )(rendered); expect(page).toBeNull(); }); @@ -44,7 +48,10 @@ describe("preferences - navigation to proxy preferences", () => { }); it("shows proxy preferences", () => { - const page = rendered.getByTestId("proxy-preferences-page"); + const page = getSingleElement( + "preference-page", + "proxy", + )(rendered); expect(page).not.toBeNull(); }); diff --git a/src/features/preferences/navigation-to-telemetry-preferences.test.tsx b/src/features/preferences/navigation-to-telemetry-preferences.test.tsx index 3a563df59f..b5c8b18ff8 100644 --- a/src/features/preferences/navigation-to-telemetry-preferences.test.tsx +++ b/src/features/preferences/navigation-to-telemetry-preferences.test.tsx @@ -9,6 +9,7 @@ import { getApplicationBuilder } from "../../renderer/components/test-utils/get- import navigateToTelemetryPreferencesInjectable from "./common/navigate-to-telemetry-preferences.injectable"; import sentryDataSourceNameInjectable from "../../common/vars/sentry-dsn-url.injectable"; import type { FakeExtensionOptions } from "../../renderer/components/test-utils/get-extension-fake"; +import { getSingleElement, querySingleElement } from "../../renderer/components/test-utils/discovery-of-html-elements"; describe("preferences - navigation to telemetry preferences", () => { let builder: ApplicationBuilder; @@ -33,7 +34,10 @@ describe("preferences - navigation to telemetry preferences", () => { }); it("does not show telemetry preferences yet", () => { - const page = rendered.queryByTestId("telemetry-preferences-page"); + const page = querySingleElement( + "preference-page", + "telemetry", + )(rendered); expect(page).toBeNull(); }); @@ -71,7 +75,10 @@ describe("preferences - navigation to telemetry preferences", () => { }); it("shows telemetry preferences", () => { - const page = rendered.getByTestId("telemetry-preferences-page"); + const page = getSingleElement( + "preference-page", + "telemetry", + )(rendered); expect(page).not.toBeNull(); }); diff --git a/src/features/preferences/navigation-to-terminal-preferences.test.ts b/src/features/preferences/navigation-to-terminal-preferences.test.ts index e7fbb9c4b9..7920a8c297 100644 --- a/src/features/preferences/navigation-to-terminal-preferences.test.ts +++ b/src/features/preferences/navigation-to-terminal-preferences.test.ts @@ -5,6 +5,7 @@ import type { RenderResult } from "@testing-library/react"; import type { ApplicationBuilder } from "../../renderer/components/test-utils/get-application-builder"; import { getApplicationBuilder } from "../../renderer/components/test-utils/get-application-builder"; +import { getSingleElement, querySingleElement } from "../../renderer/components/test-utils/discovery-of-html-elements"; describe("preferences - navigation to terminal preferences", () => { let applicationBuilder: ApplicationBuilder; @@ -29,7 +30,10 @@ describe("preferences - navigation to terminal preferences", () => { }); it("does not show terminal preferences yet", () => { - const page = rendered.queryByTestId("terminal-preferences-page"); + const page = querySingleElement( + "preference-page", + "terminal", + )(rendered); expect(page).toBeNull(); }); @@ -43,8 +47,12 @@ describe("preferences - navigation to terminal preferences", () => { expect(rendered.container).toMatchSnapshot(); }); + it("shows terminal preferences", () => { - const page = rendered.getByTestId("terminal-preferences-page"); + const page = getSingleElement( + "preference-page", + "terminal", + )(rendered); expect(page).not.toBeNull(); }); diff --git a/src/features/preferences/navigation-using-application-menu.test.ts b/src/features/preferences/navigation-using-application-menu.test.ts index 2576667e2b..fdcfe6e983 100644 --- a/src/features/preferences/navigation-using-application-menu.test.ts +++ b/src/features/preferences/navigation-using-application-menu.test.ts @@ -6,6 +6,7 @@ import type { RenderResult } from "@testing-library/react"; import type { ApplicationBuilder } from "../../renderer/components/test-utils/get-application-builder"; import { getApplicationBuilder } from "../../renderer/components/test-utils/get-application-builder"; +import { getSingleElement, querySingleElement } from "../../renderer/components/test-utils/discovery-of-html-elements"; describe("preferences - navigation using application menu", () => { let applicationBuilder: ApplicationBuilder; @@ -21,10 +22,13 @@ describe("preferences - navigation using application menu", () => { expect(rendered.container).toMatchSnapshot(); }); - it("does not show application preferences page yet", () => { - const actual = rendered.queryByTestId("application-preferences-page"); + it("does not show application preferences yet", () => { + const page = querySingleElement( + "preference-page", + "application", + )(rendered); - expect(actual).toBeNull(); + expect(page).toBeNull(); }); describe("when navigating to preferences using application menu", () => { @@ -36,10 +40,13 @@ describe("preferences - navigation using application menu", () => { expect(rendered.container).toMatchSnapshot(); }); - it("shows application preferences page", () => { - const actual = rendered.getByTestId("application-preferences-page"); + it("shows application preferences", () => { + const page = getSingleElement( + "preference-page", + "application", + )(rendered); - expect(actual).not.toBeNull(); + expect(page).not.toBeNull(); }); }); }); diff --git a/src/features/preferences/navigation-using-tray.test.ts b/src/features/preferences/navigation-using-tray.test.ts index 065cc54f4b..869e3f951d 100644 --- a/src/features/preferences/navigation-using-tray.test.ts +++ b/src/features/preferences/navigation-using-tray.test.ts @@ -5,6 +5,7 @@ import type { RenderResult } from "@testing-library/react"; import type { ApplicationBuilder } from "../../renderer/components/test-utils/get-application-builder"; import { getApplicationBuilder } from "../../renderer/components/test-utils/get-application-builder"; +import { getSingleElement, querySingleElement } from "../../renderer/components/test-utils/discovery-of-html-elements"; describe("show-about-using-tray", () => { let applicationBuilder: ApplicationBuilder; @@ -20,10 +21,13 @@ describe("show-about-using-tray", () => { expect(rendered.baseElement).toMatchSnapshot(); }); - it("does not show application preferences page yet", () => { - const actual = rendered.queryByTestId("application-preferences-page"); + it("does not show application preferences yet", () => { + const page = querySingleElement( + "preference-page", + "application", + )(rendered); - expect(actual).toBeNull(); + expect(page).toBeNull(); }); describe("when navigating using tray", () => { @@ -35,10 +39,13 @@ describe("show-about-using-tray", () => { expect(rendered.baseElement).toMatchSnapshot(); }); - it("shows application preferences page", () => { - const actual = rendered.getByTestId("application-preferences-page"); + it("shows application preferences", () => { + const page = getSingleElement( + "preference-page", + "application", + )(rendered); - expect(actual).not.toBeNull(); + expect(page).not.toBeNull(); }); }); }); diff --git a/src/features/preferences/renderer/preference-items/application/application-preference-page.tsx b/src/features/preferences/renderer/preference-items/application/application-preference-page.tsx index 492e661e42..f451ebc5b3 100644 --- a/src/features/preferences/renderer/preference-items/application/application-preference-page.tsx +++ b/src/features/preferences/renderer/preference-items/application/application-preference-page.tsx @@ -6,7 +6,7 @@ import React from "react"; import type { PreferenceItemComponent } from "../preference-item-injection-token"; export const ApplicationPreferencePage: PreferenceItemComponent = ({ children }) => ( -
+

Application

{children} diff --git a/src/features/preferences/renderer/preference-items/editor/editor-preference-page.tsx b/src/features/preferences/renderer/preference-items/editor/editor-preference-page.tsx index 7b1b5cacec..28de924229 100644 --- a/src/features/preferences/renderer/preference-items/editor/editor-preference-page.tsx +++ b/src/features/preferences/renderer/preference-items/editor/editor-preference-page.tsx @@ -6,7 +6,7 @@ import React from "react"; import type { PreferenceItemComponent } from "../preference-item-injection-token"; export const EditorPreferencePage: PreferenceItemComponent = ({ children }) => ( -
+

Editor configuration

{children} diff --git a/src/features/preferences/renderer/preference-items/kubernetes/kubernetes-page.tsx b/src/features/preferences/renderer/preference-items/kubernetes/kubernetes-page.tsx index b07d7d6e10..e8f68453f8 100644 --- a/src/features/preferences/renderer/preference-items/kubernetes/kubernetes-page.tsx +++ b/src/features/preferences/renderer/preference-items/kubernetes/kubernetes-page.tsx @@ -6,7 +6,7 @@ import React from "react"; import type { PreferenceItemComponent } from "../preference-item-injection-token"; export const KubernetesPage: PreferenceItemComponent = ({ children }) => ( -
+

Kubernetes

{children} diff --git a/src/features/preferences/renderer/preference-items/proxy/proxy-preference-page.tsx b/src/features/preferences/renderer/preference-items/proxy/proxy-preference-page.tsx index c48e16d70c..91257d1abc 100644 --- a/src/features/preferences/renderer/preference-items/proxy/proxy-preference-page.tsx +++ b/src/features/preferences/renderer/preference-items/proxy/proxy-preference-page.tsx @@ -6,7 +6,7 @@ import React from "react"; import type { PreferenceItemComponent } from "../preference-item-injection-token"; export const ProxyPreferencePage: PreferenceItemComponent = ({ children }) => ( -
+

Proxy

{children} diff --git a/src/features/preferences/renderer/preference-items/telemetry/telemetry-page.tsx b/src/features/preferences/renderer/preference-items/telemetry/telemetry-page.tsx index e235eb5d96..fbc8590e88 100644 --- a/src/features/preferences/renderer/preference-items/telemetry/telemetry-page.tsx +++ b/src/features/preferences/renderer/preference-items/telemetry/telemetry-page.tsx @@ -6,7 +6,7 @@ import React from "react"; import type { PreferenceItemComponent } from "../preference-item-injection-token"; export const TelemetryPage: PreferenceItemComponent = ({ children }) => ( -
+

Telemetry

{children} diff --git a/src/features/preferences/renderer/preference-items/terminal/terminal-page.tsx b/src/features/preferences/renderer/preference-items/terminal/terminal-page.tsx index 92a50a3463..821152599c 100644 --- a/src/features/preferences/renderer/preference-items/terminal/terminal-page.tsx +++ b/src/features/preferences/renderer/preference-items/terminal/terminal-page.tsx @@ -6,7 +6,7 @@ import React from "react"; import type { PreferenceItemComponent } from "../preference-item-injection-token"; export const TerminalPage: PreferenceItemComponent = ({ children }) => ( -
+

Terminal

{children} diff --git a/src/features/preferences/renderer/preference-navigation/preferences-navigation-tab.tsx b/src/features/preferences/renderer/preference-navigation/preferences-navigation-tab.tsx index 62a6573874..1e4355bbd5 100644 --- a/src/features/preferences/renderer/preference-navigation/preferences-navigation-tab.tsx +++ b/src/features/preferences/renderer/preference-navigation/preferences-navigation-tab.tsx @@ -26,6 +26,7 @@ const NonInjectedPreferencesNavigationTab = observer(({ navigateToTab, tabIsActi data-testid={tab.testId} active={tabIsActive.get()} label={tab.label} + data-preference-tab-link-test={tab.pathId} /> ));