From e80837cb8363b6dafaab5c1bd3a3d7fab8adb14f Mon Sep 17 00:00:00 2001 From: iliana etaoin Date: Tue, 15 Jul 2025 14:11:14 -0700 Subject: [PATCH] run ui-test and ui-lint targets in CI --- .github/buildomat/jobs/ui-test.sh | 22 +++++++++++++++ pkg/ui/workspaces/db-console/karma.conf.js | 2 +- pkg/ui/workspaces/db-console/src/app.spec.tsx | 27 ------------------- .../components/tooltip/tooltip.stories.tsx | 2 -- .../reports/containers/stores/encryption.tsx | 6 +++++ pkg/ui/workspaces/db-console/tests-loader.js | 2 -- 6 files changed, 29 insertions(+), 32 deletions(-) create mode 100644 .github/buildomat/jobs/ui-test.sh diff --git a/.github/buildomat/jobs/ui-test.sh b/.github/buildomat/jobs/ui-test.sh new file mode 100644 index 00000000000..8d32e4a8d18 --- /dev/null +++ b/.github/buildomat/jobs/ui-test.sh @@ -0,0 +1,22 @@ +#!/bin/bash +#: +#: name = "ui-test" +#: variety = "basic" +#: target = "ubuntu-22.04" + +set -o errexit +set -o pipefail +set -o xtrace + +source .github/buildomat/linux-setup.sh +install_output=$(npx @puppeteer/browsers install chrome@stable) +echo "${install_output}" +CHROME_BIN=$(awk '{ print $2 }' <<<"${install_output}") +export CHROME_BIN + +sudo apt-get satisfy -y --no-install-recommends \ + "$(tr '\n' , <"$(dirname "${CHROME_BIN}")"/deb.deps)" + +gmake -j"$(nproc)" ui-test || error=$? +gmake -j"$(nproc)" ui-lint +exit "${error:-0}" diff --git a/pkg/ui/workspaces/db-console/karma.conf.js b/pkg/ui/workspaces/db-console/karma.conf.js index 13a4e7e599d..93a980ec351 100644 --- a/pkg/ui/workspaces/db-console/karma.conf.js +++ b/pkg/ui/workspaces/db-console/karma.conf.js @@ -14,7 +14,7 @@ "use strict"; const webpackConfig = require("./webpack.app")( - { dist: "ccl" }, + { dist: "oss" }, { mode: "development" }, ); diff --git a/pkg/ui/workspaces/db-console/src/app.spec.tsx b/pkg/ui/workspaces/db-console/src/app.spec.tsx index 4da9fd98380..5b370bea3a5 100644 --- a/pkg/ui/workspaces/db-console/src/app.spec.tsx +++ b/pkg/ui/workspaces/db-console/src/app.spec.tsx @@ -19,8 +19,6 @@ import { App } from "src/app"; import { AdminUIState, createAdminUIStore } from "src/redux/state"; import ClusterOverview from "src/views/cluster/containers/clusterOverview"; -import NodeList from "src/views/clusterviz/containers/map/nodeList"; -import { ClusterVisualization } from "src/views/clusterviz/containers/map"; import { NodeGraphs } from "src/views/cluster/containers/nodeGraphs"; import { NodeOverview } from "src/views/cluster/containers/nodeOverview"; import { Logs } from "src/views/cluster/containers/nodeLogs"; @@ -98,26 +96,6 @@ describe("Routing to", () => { }); }); - describe("'/overview/list' path", () => { - it("routes to component", () => { - navigateToPath("/overview"); - const clusterOverview = appWrapper.find(ClusterOverview); - assert.lengthOf(clusterOverview, 1); - const nodeList = clusterOverview.find(NodeList); - assert.lengthOf(nodeList, 1); - }); - }); - - describe("'/overview/map' path", () => { - it("routes to component", () => { - navigateToPath("/overview/map"); - const clusterOverview = appWrapper.find(ClusterOverview); - const clusterViz = appWrapper.find(ClusterVisualization); - assert.lengthOf(clusterOverview, 1); - assert.lengthOf(clusterViz, 1); - }); - }); - { /* time series metrics */ } @@ -192,11 +170,6 @@ describe("Routing to", () => { /* node details */ } describe("'/node' path", () => { - it("routes to component", () => { - navigateToPath("/node"); - assert.lengthOf(appWrapper.find(NodeList), 1); - }); - it("redirected to '/overview/list'", () => { navigateToPath("/node"); const location = history.location; diff --git a/pkg/ui/workspaces/db-console/src/components/tooltip/tooltip.stories.tsx b/pkg/ui/workspaces/db-console/src/components/tooltip/tooltip.stories.tsx index 8d129c4011c..be7321d1980 100644 --- a/pkg/ui/workspaces/db-console/src/components/tooltip/tooltip.stories.tsx +++ b/pkg/ui/workspaces/db-console/src/components/tooltip/tooltip.stories.tsx @@ -13,7 +13,6 @@ import { storiesOf } from "@storybook/react"; import * as ClusterTooltips from "src/views/cluster/containers/clusterOverview/tooltips"; import * as NodeOverviewTooltips from "src/views/cluster/containers/nodeOverview/tooltips"; -import * as CapacityArkTooltips from "src/views/clusterviz/components/nodeOrLocality/tooltips"; import * as GraphTooltips from "src/views/cluster/containers/nodeGraphs/dashboards/graphTooltips"; import { ToolTipWrapper } from "src/views/shared/components/toolTip"; import { @@ -101,7 +100,6 @@ storiesOf("Tooltips/Cluster Overview Page", module) .addDecorator(styledWrapper(wrapperStyle)) .add("Summary tooltips", () => tooltipsStack(ClusterTooltips)) .add("Node overview tooltips", () => tooltipsStack(NodeOverviewTooltips)) - .add("Node map tooltips", () => tooltipsStack(CapacityArkTooltips)) .add("Node List tooltips", () => ( <> {tooltipsStack(plainNodeTooltips)} diff --git a/pkg/ui/workspaces/db-console/src/views/reports/containers/stores/encryption.tsx b/pkg/ui/workspaces/db-console/src/views/reports/containers/stores/encryption.tsx index 4e2f760099e..be9c9826558 100644 --- a/pkg/ui/workspaces/db-console/src/views/reports/containers/stores/encryption.tsx +++ b/pkg/ui/workspaces/db-console/src/views/reports/containers/stores/encryption.tsx @@ -17,6 +17,12 @@ export interface EncryptionStatusProps { } export default class EncryptionStatus { + props: EncryptionStatusProps; + + constructor(props: EncryptionStatusProps) { + this.props = props; + } + getEncryptionRows(): React.ReactElement { return null; } diff --git a/pkg/ui/workspaces/db-console/tests-loader.js b/pkg/ui/workspaces/db-console/tests-loader.js index 4a543dc8ccd..9ec51bb5b50 100644 --- a/pkg/ui/workspaces/db-console/tests-loader.js +++ b/pkg/ui/workspaces/db-console/tests-loader.js @@ -9,7 +9,5 @@ // licenses/APL.txt. const testsContext = require.context("./src", true, /\.spec\.(ts|tsx)$/); -const cclTestsContext = require.context("./ccl/src", true, /\.spec\.(ts|tsx)$/); testsContext.keys().forEach(testsContext); -cclTestsContext.keys().forEach(cclTestsContext);