diff --git a/src/renderer/components/+welcome/__test__/welcome.test.tsx b/src/renderer/components/+welcome/__test__/welcome.test.tsx
new file mode 100644
index 000000000000..97493e07ff22
--- /dev/null
+++ b/src/renderer/components/+welcome/__test__/welcome.test.tsx
@@ -0,0 +1,55 @@
+/**
+ * Copyright (c) 2021 OpenLens Authors
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy of
+ * this software and associated documentation files (the "Software"), to deal in
+ * the Software without restriction, including without limitation the rights to
+ * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
+ * the Software, and to permit persons to whom the Software is furnished to do so,
+ * subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in all
+ * copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+ * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+ * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+ * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+import React from "react";
+import { render } from "@testing-library/react";
+import "@testing-library/jest-dom/extend-expect";
+import { Welcome } from "../welcome";
+import { TopBarRegistry, WelcomeMenuRegistry } from "../../../../extensions/registries";
+
+describe("", () => {
+ beforeEach(() => {
+ TopBarRegistry.createInstance();
+ WelcomeMenuRegistry.createInstance();
+ });
+
+ afterEach(() => {
+ TopBarRegistry.resetInstance();
+ WelcomeMenuRegistry.resetInstance();
+ });
+
+ it("renders items in the top bar", async () => {
+ const testId = "testId";
+ const text = "topBarItem";
+
+ TopBarRegistry.getInstance().getItems = jest.fn().mockImplementationOnce(() => [
+ {
+ components: {
+ Item: () => {text}
+ }
+ }
+ ]);
+
+ const { getByTestId } = render();
+
+ expect(await getByTestId(testId)).toHaveTextContent(text);
+ });
+});
diff --git a/src/renderer/components/+welcome/welcome.tsx b/src/renderer/components/+welcome/welcome.tsx
index 2b06d8d2552b..feb676d8fd7d 100644
--- a/src/renderer/components/+welcome/welcome.tsx
+++ b/src/renderer/components/+welcome/welcome.tsx
@@ -25,32 +25,36 @@ import { observer } from "mobx-react";
import { Icon } from "../icon";
import { productName, slackUrl } from "../../../common/vars";
import { WelcomeMenuRegistry } from "../../../extensions/registries";
+import { WelcomeTopbar } from "../cluster-manager/welcome-topbar";
@observer
export class Welcome extends React.Component {
render() {
return (
-
-
-
+ <>
+
+
+
+
-
Welcome to {productName} 5!
+
Welcome to {productName} 5!
-
- To get you started we have auto-detected your clusters in your kubeconfig file and added them to the catalog, your centralized view for managing all your cloud-native resources.
-
- If you have any questions or feedback, please join our Lens Community slack channel.
-
+
+ To get you started we have auto-detected your clusters in your kubeconfig file and added them to the catalog, your centralized view for managing all your cloud-native resources.
+
+ If you have any questions or feedback, please join our Lens Community slack channel.
+
-
+
+
-
+ >
);
}
}
diff --git a/src/renderer/components/cluster-manager/welcome-topbar.tsx b/src/renderer/components/cluster-manager/welcome-topbar.tsx
new file mode 100644
index 000000000000..c528326c7a77
--- /dev/null
+++ b/src/renderer/components/cluster-manager/welcome-topbar.tsx
@@ -0,0 +1,30 @@
+/**
+ * Copyright (c) 2021 OpenLens Authors
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy of
+ * this software and associated documentation files (the "Software"), to deal in
+ * the Software without restriction, including without limitation the rights to
+ * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
+ * the Software, and to permit persons to whom the Software is furnished to do so,
+ * subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in all
+ * copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+ * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+ * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+ * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+import React from "react";
+import { TopBar } from "../layout/topbar";
+
+export function WelcomeTopbar() {
+ return (
+
+
+ );
+}