mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
electron 11.4.3
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
This commit is contained in:
parent
400a348c0d
commit
8e3d50fac2
2
.yarnrc
2
.yarnrc
@ -1,3 +1,3 @@
|
||||
disturl "https://atom.io/download/electron"
|
||||
target "9.4.4"
|
||||
target "11.4.3"
|
||||
runtime "electron"
|
||||
|
||||
@ -29,7 +29,7 @@ describe("Lens cluster pages", () => {
|
||||
await app.client.waitUntilTextExists("div", "Catalog");
|
||||
await addMinikubeCluster(app);
|
||||
await waitForMinikubeDashboard(app);
|
||||
await app.client.click('a[href="/nodes"]');
|
||||
await app.client.elementClick('a[href="/nodes"]');
|
||||
await app.client.waitUntilTextExists("div.TableCell", "Ready");
|
||||
};
|
||||
|
||||
@ -327,21 +327,21 @@ describe("Lens cluster pages", () => {
|
||||
if (drawer !== "") {
|
||||
it(`shows ${drawer} drawer`, async () => {
|
||||
expect(clusterAdded).toBe(true);
|
||||
await app.client.click(selectors.expandSubMenu);
|
||||
await app.client.elementClick(selectors.expandSubMenu);
|
||||
await app.client.waitUntilTextExists(selectors.subMenuLink(pages[0].href), pages[0].name);
|
||||
});
|
||||
|
||||
pages.forEach(({ name, href, expectedSelector, expectedText }) => {
|
||||
it(`shows ${drawer}->${name} page`, async () => {
|
||||
expect(clusterAdded).toBe(true);
|
||||
await app.client.click(selectors.subMenuLink(href));
|
||||
await app.client.elementClick(selectors.subMenuLink(href));
|
||||
await app.client.waitUntilTextExists(expectedSelector, expectedText);
|
||||
});
|
||||
});
|
||||
|
||||
it(`hides ${drawer} drawer`, async () => {
|
||||
expect(clusterAdded).toBe(true);
|
||||
await app.client.click(selectors.expandSubMenu);
|
||||
await app.client.elementClick(selectors.expandSubMenu);
|
||||
await expect(app.client.waitUntilTextExists(selectors.subMenuLink(pages[0].href), pages[0].name, 100)).rejects.toThrow();
|
||||
});
|
||||
} else {
|
||||
@ -349,7 +349,7 @@ describe("Lens cluster pages", () => {
|
||||
|
||||
it(`shows page ${name}`, async () => {
|
||||
expect(clusterAdded).toBe(true);
|
||||
await app.client.click(`a[href^="/${href}"]`);
|
||||
await app.client.elementClick(`a[href^="/${href}"]`);
|
||||
await app.client.waitUntilTextExists(expectedSelector, expectedText);
|
||||
});
|
||||
}
|
||||
@ -368,42 +368,30 @@ describe("Lens cluster pages", () => {
|
||||
it(`shows a log for a pod`, async () => {
|
||||
expect(clusterAdded).toBe(true);
|
||||
// Go to Pods page
|
||||
await app.client.click(getSidebarSelectors("workloads").expandSubMenu);
|
||||
await app.client.elementClick(getSidebarSelectors("workloads").expandSubMenu);
|
||||
await app.client.waitUntilTextExists('a[href^="/pods"]', "Pods");
|
||||
await app.client.click('a[href^="/pods"]');
|
||||
await app.client.click(".NamespaceSelect");
|
||||
await app.client.elementClick('a[href^="/pods"]');
|
||||
await app.client.elementClick(".NamespaceSelect");
|
||||
await app.client.keys("kube-system");
|
||||
await app.client.keys("Enter");// "\uE007"
|
||||
await app.client.waitUntilTextExists("div.TableCell", "kube-apiserver");
|
||||
let podMenuItemEnabled = false;
|
||||
|
||||
// Wait until extensions are enabled on renderer
|
||||
while (!podMenuItemEnabled) {
|
||||
const logs = await app.client.getRenderProcessLogs();
|
||||
|
||||
podMenuItemEnabled = !!logs.find(entry => entry.message.includes("[EXTENSION]: enabled lens-pod-menu@"));
|
||||
|
||||
if (!podMenuItemEnabled) {
|
||||
await new Promise(r => setTimeout(r, 1000));
|
||||
}
|
||||
}
|
||||
|
||||
// Open logs tab in dock
|
||||
await app.client.click(".list .TableRow:first-child");
|
||||
await app.client.waitForVisible(".Drawer");
|
||||
await app.client.waitForVisible(`ul.KubeObjectMenu li.MenuItem i[title="Logs"]`);
|
||||
await app.client.click(".drawer-title .Menu li:nth-child(2)");
|
||||
await app.client.elementClick(".list .TableRow:first-child");
|
||||
await (await app.client.$(".Drawer")).waitForDisplayed();
|
||||
await (await app.client.$(`ul.KubeObjectMenu li.MenuItem i[title="Logs"]`)).waitForDisplayed();
|
||||
await app.client.elementClick(".drawer-title .Menu li:nth-child(2)");
|
||||
// Check if controls are available
|
||||
await app.client.waitForVisible(".LogList .VirtualList");
|
||||
await app.client.waitForVisible(".LogResourceSelector");
|
||||
await (await app.client.$(".LogList .VirtualList")).waitForDisplayed();
|
||||
await (await app.client.$(".LogResourceSelector")).waitForDisplayed();
|
||||
//await app.client.waitForVisible(".LogSearch .SearchInput");
|
||||
await app.client.waitForVisible(".LogSearch .SearchInput input");
|
||||
await (await app.client.$(".LogSearch .SearchInput input")).waitForDisplayed();
|
||||
// Search for semicolon
|
||||
await app.client.keys(":");
|
||||
await app.client.waitForVisible(".LogList .list span.active");
|
||||
await (await app.client.$(".LogList .list span.active")).waitForDisplayed();
|
||||
// Click through controls
|
||||
await app.client.click(".LogControls .show-timestamps");
|
||||
await app.client.click(".LogControls .show-previous");
|
||||
await app.client.elementClick(".LogControls .show-timestamps");
|
||||
await app.client.elementClick(".LogControls .show-previous");
|
||||
});
|
||||
});
|
||||
|
||||
@ -418,35 +406,35 @@ describe("Lens cluster pages", () => {
|
||||
|
||||
it("shows default namespace", async () => {
|
||||
expect(clusterAdded).toBe(true);
|
||||
await app.client.click('a[href="/namespaces"]');
|
||||
await app.client.elementClick('a[href="/namespaces"]');
|
||||
await app.client.waitUntilTextExists("div.TableCell", "default");
|
||||
await app.client.waitUntilTextExists("div.TableCell", "kube-system");
|
||||
});
|
||||
|
||||
it(`creates ${TEST_NAMESPACE} namespace`, async () => {
|
||||
expect(clusterAdded).toBe(true);
|
||||
await app.client.click('a[href="/namespaces"]');
|
||||
await app.client.elementClick('a[href="/namespaces"]');
|
||||
await app.client.waitUntilTextExists("div.TableCell", "default");
|
||||
await app.client.waitUntilTextExists("div.TableCell", "kube-system");
|
||||
await app.client.click("button.add-button");
|
||||
await app.client.elementClick("button.add-button");
|
||||
await app.client.waitUntilTextExists("div.AddNamespaceDialog", "Create Namespace");
|
||||
await app.client.keys(`${TEST_NAMESPACE}\n`);
|
||||
await app.client.waitForExist(`.name=${TEST_NAMESPACE}`);
|
||||
await (await app.client.$(`.name=${TEST_NAMESPACE}`)).waitForExist();
|
||||
});
|
||||
|
||||
it(`creates a pod in ${TEST_NAMESPACE} namespace`, async () => {
|
||||
expect(clusterAdded).toBe(true);
|
||||
await app.client.click(getSidebarSelectors("workloads").expandSubMenu);
|
||||
await app.client.elementClick(getSidebarSelectors("workloads").expandSubMenu);
|
||||
await app.client.waitUntilTextExists('a[href^="/pods"]', "Pods");
|
||||
await app.client.click('a[href^="/pods"]');
|
||||
await app.client.elementClick('a[href^="/pods"]');
|
||||
|
||||
await app.client.click(".NamespaceSelect");
|
||||
await app.client.elementClick(".NamespaceSelect");
|
||||
await app.client.keys(TEST_NAMESPACE);
|
||||
await app.client.keys("Enter");// "\uE007"
|
||||
await app.client.click(".Icon.new-dock-tab");
|
||||
await app.client.elementClick(".Icon.new-dock-tab");
|
||||
await app.client.waitUntilTextExists("li.MenuItem.create-resource-tab", "Create resource");
|
||||
await app.client.click("li.MenuItem.create-resource-tab");
|
||||
await app.client.waitForVisible(".CreateResource div.ace_content");
|
||||
await app.client.elementClick("li.MenuItem.create-resource-tab");
|
||||
await (await app.client.$(".CreateResource div.ace_content")).waitForDisplayed();
|
||||
// Write pod manifest to editor
|
||||
await app.client.keys("apiVersion: v1\n");
|
||||
await app.client.keys("kind: Pod\n");
|
||||
@ -458,12 +446,12 @@ describe("Lens cluster pages", () => {
|
||||
await app.client.keys("- name: nginx-create-pod-test\n");
|
||||
await app.client.keys(" image: nginx:alpine\n");
|
||||
// Create deployment
|
||||
await app.client.waitForEnabled("button.Button=Create & Close");
|
||||
await app.client.click("button.Button=Create & Close");
|
||||
await (await app.client.$("button.Button=Create & Close")).waitForEnabled();
|
||||
await app.client.elementClick("button.Button=Create & Close");
|
||||
// Wait until first bits of pod appears on dashboard
|
||||
await app.client.waitForExist(".name=nginx-create-pod-test");
|
||||
await (await app.client.$(".name=nginx-create-pod-test")).waitForExist();
|
||||
// Open pod details
|
||||
await app.client.click(".name=nginx-create-pod-test");
|
||||
await app.client.elementClick(".name=nginx-create-pod-test");
|
||||
await app.client.waitUntilTextExists("div.drawer-title-text", "Pod: nginx-create-pod-test");
|
||||
});
|
||||
});
|
||||
|
||||
@ -39,26 +39,26 @@ export function minikubeReady(testNamespace: string): boolean {
|
||||
}
|
||||
|
||||
export async function addMinikubeCluster(app: Application) {
|
||||
await app.client.waitForVisible("button.MuiSpeedDial-fab");
|
||||
await app.client.click("button.MuiSpeedDial-fab");
|
||||
await app.client.waitForVisible(`button[title="Add from kubeconfig"]`);
|
||||
await app.client.click(`button[title="Add from kubeconfig"]`);
|
||||
await (await app.client.$("button.MuiSpeedDial-fab")).waitForDisplayed();
|
||||
await app.client.elementClick("button.MuiSpeedDial-fab");
|
||||
await (await app.client.$(`button[title="Add from kubeconfig"]`)).waitForDisplayed();
|
||||
await app.client.elementClick(`button[title="Add from kubeconfig"]`);
|
||||
await app.client.waitUntilTextExists("div", "Select kubeconfig file");
|
||||
await app.client.click("div.Select__control"); // show the context drop-down list
|
||||
await app.client.elementClick("div.Select__control"); // show the context drop-down list
|
||||
await app.client.waitUntilTextExists("div", "minikube");
|
||||
|
||||
if (!await app.client.$("button.primary").isEnabled()) {
|
||||
await app.client.click("div.minikube"); // select minikube context
|
||||
if (!await app.client.isElementEnabled("button.primary")) {
|
||||
await app.client.elementClick("div.minikube"); // select minikube context
|
||||
} // else the only context, which must be 'minikube', is automatically selected
|
||||
await app.client.click("div.Select__control"); // hide the context drop-down list (it might be obscuring the Add cluster(s) button)
|
||||
await app.client.click("button.primary"); // add minikube cluster
|
||||
await app.client.elementClick("div.Select__control"); // hide the context drop-down list (it might be obscuring the Add cluster(s) button)
|
||||
await app.client.elementClick("button.primary"); // add minikube cluster
|
||||
await app.client.waitUntilTextExists("div.TableCell", "minikube");
|
||||
await app.client.click("div.TableRow");
|
||||
await app.client.elementClick("div.TableRow");
|
||||
}
|
||||
|
||||
export async function waitForMinikubeDashboard(app: Application) {
|
||||
await app.client.waitUntilTextExists("pre.kube-auth-out", "Authentication proxy started");
|
||||
await app.client.waitForExist(`iframe[name="minikube"]`);
|
||||
await app.client.frame("minikube");
|
||||
await (await app.client.$(`iframe[name="minikube"]`)).waitForDisplayed();
|
||||
await (await app.client.$("iframe[name=minikube]")).waitForExist();
|
||||
await app.client.waitUntilTextExists("span.link-text", "Cluster");
|
||||
}
|
||||
|
||||
@ -79,17 +79,17 @@ export async function appStart() {
|
||||
|
||||
export async function clickWhatsNew(app: Application) {
|
||||
await app.client.waitUntilTextExists("h1", "What's new?");
|
||||
await app.client.click("button.primary");
|
||||
await app.client.elementClick("button.primary");
|
||||
await app.client.waitUntilTextExists("div", "Catalog");
|
||||
}
|
||||
|
||||
export async function clickWelcomeNotification(app: Application) {
|
||||
const itemsText = await app.client.$("div.info-panel").getText();
|
||||
const itemsText = await app.client.getElementText("div.info-panel");
|
||||
|
||||
if (itemsText === "0 item") {
|
||||
// welcome notification should be present, dismiss it
|
||||
await app.client.waitUntilTextExists("div.message", "Welcome!");
|
||||
await app.client.click(".notification i.Icon.close");
|
||||
await app.client.elementClick(".notification i.Icon.close");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -224,7 +224,7 @@
|
||||
"mobx-react": "^6.2.2",
|
||||
"mock-fs": "^4.12.0",
|
||||
"moment": "^2.26.0",
|
||||
"node-pty": "^0.9.0",
|
||||
"node-pty": "^0.10.0",
|
||||
"npm": "^6.14.8",
|
||||
"openid-client": "^3.15.2",
|
||||
"p-limit": "^3.1.0",
|
||||
@ -321,7 +321,7 @@
|
||||
"css-loader": "^3.5.3",
|
||||
"deepdash": "^5.3.5",
|
||||
"dompurify": "^2.0.11",
|
||||
"electron": "^9.4.4",
|
||||
"electron": "^11.4.3",
|
||||
"electron-builder": "^22.10.5",
|
||||
"electron-notarize": "^0.3.0",
|
||||
"eslint": "^7.7.0",
|
||||
@ -357,7 +357,7 @@
|
||||
"react-window": "^1.8.5",
|
||||
"sass-loader": "^8.0.2",
|
||||
"sharp": "^0.26.1",
|
||||
"spectron": "11.0.0",
|
||||
"spectron": "^13.0.0",
|
||||
"style-loader": "^1.2.1",
|
||||
"terser-webpack-plugin": "^3.0.3",
|
||||
"ts-jest": "^26.1.0",
|
||||
|
||||
Loading…
Reference in New Issue
Block a user