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"
|
disturl "https://atom.io/download/electron"
|
||||||
target "9.4.4"
|
target "11.4.3"
|
||||||
runtime "electron"
|
runtime "electron"
|
||||||
|
|||||||
@ -29,7 +29,7 @@ describe("Lens cluster pages", () => {
|
|||||||
await app.client.waitUntilTextExists("div", "Catalog");
|
await app.client.waitUntilTextExists("div", "Catalog");
|
||||||
await addMinikubeCluster(app);
|
await addMinikubeCluster(app);
|
||||||
await waitForMinikubeDashboard(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");
|
await app.client.waitUntilTextExists("div.TableCell", "Ready");
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -327,21 +327,21 @@ describe("Lens cluster pages", () => {
|
|||||||
if (drawer !== "") {
|
if (drawer !== "") {
|
||||||
it(`shows ${drawer} drawer`, async () => {
|
it(`shows ${drawer} drawer`, async () => {
|
||||||
expect(clusterAdded).toBe(true);
|
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);
|
await app.client.waitUntilTextExists(selectors.subMenuLink(pages[0].href), pages[0].name);
|
||||||
});
|
});
|
||||||
|
|
||||||
pages.forEach(({ name, href, expectedSelector, expectedText }) => {
|
pages.forEach(({ name, href, expectedSelector, expectedText }) => {
|
||||||
it(`shows ${drawer}->${name} page`, async () => {
|
it(`shows ${drawer}->${name} page`, async () => {
|
||||||
expect(clusterAdded).toBe(true);
|
expect(clusterAdded).toBe(true);
|
||||||
await app.client.click(selectors.subMenuLink(href));
|
await app.client.elementClick(selectors.subMenuLink(href));
|
||||||
await app.client.waitUntilTextExists(expectedSelector, expectedText);
|
await app.client.waitUntilTextExists(expectedSelector, expectedText);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
it(`hides ${drawer} drawer`, async () => {
|
it(`hides ${drawer} drawer`, async () => {
|
||||||
expect(clusterAdded).toBe(true);
|
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();
|
await expect(app.client.waitUntilTextExists(selectors.subMenuLink(pages[0].href), pages[0].name, 100)).rejects.toThrow();
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
@ -349,7 +349,7 @@ describe("Lens cluster pages", () => {
|
|||||||
|
|
||||||
it(`shows page ${name}`, async () => {
|
it(`shows page ${name}`, async () => {
|
||||||
expect(clusterAdded).toBe(true);
|
expect(clusterAdded).toBe(true);
|
||||||
await app.client.click(`a[href^="/${href}"]`);
|
await app.client.elementClick(`a[href^="/${href}"]`);
|
||||||
await app.client.waitUntilTextExists(expectedSelector, expectedText);
|
await app.client.waitUntilTextExists(expectedSelector, expectedText);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -368,42 +368,30 @@ describe("Lens cluster pages", () => {
|
|||||||
it(`shows a log for a pod`, async () => {
|
it(`shows a log for a pod`, async () => {
|
||||||
expect(clusterAdded).toBe(true);
|
expect(clusterAdded).toBe(true);
|
||||||
// Go to Pods page
|
// 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.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("kube-system");
|
await app.client.keys("kube-system");
|
||||||
await app.client.keys("Enter");// "\uE007"
|
await app.client.keys("Enter");// "\uE007"
|
||||||
await app.client.waitUntilTextExists("div.TableCell", "kube-apiserver");
|
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
|
// Open logs tab in dock
|
||||||
await app.client.click(".list .TableRow:first-child");
|
await app.client.elementClick(".list .TableRow:first-child");
|
||||||
await app.client.waitForVisible(".Drawer");
|
await (await app.client.$(".Drawer")).waitForDisplayed();
|
||||||
await app.client.waitForVisible(`ul.KubeObjectMenu li.MenuItem i[title="Logs"]`);
|
await (await app.client.$(`ul.KubeObjectMenu li.MenuItem i[title="Logs"]`)).waitForDisplayed();
|
||||||
await app.client.click(".drawer-title .Menu li:nth-child(2)");
|
await app.client.elementClick(".drawer-title .Menu li:nth-child(2)");
|
||||||
// Check if controls are available
|
// Check if controls are available
|
||||||
await app.client.waitForVisible(".LogList .VirtualList");
|
await (await app.client.$(".LogList .VirtualList")).waitForDisplayed();
|
||||||
await app.client.waitForVisible(".LogResourceSelector");
|
await (await app.client.$(".LogResourceSelector")).waitForDisplayed();
|
||||||
//await app.client.waitForVisible(".LogSearch .SearchInput");
|
//await app.client.waitForVisible(".LogSearch .SearchInput");
|
||||||
await app.client.waitForVisible(".LogSearch .SearchInput input");
|
await (await app.client.$(".LogSearch .SearchInput input")).waitForDisplayed();
|
||||||
// Search for semicolon
|
// Search for semicolon
|
||||||
await app.client.keys(":");
|
await app.client.keys(":");
|
||||||
await app.client.waitForVisible(".LogList .list span.active");
|
await (await app.client.$(".LogList .list span.active")).waitForDisplayed();
|
||||||
// Click through controls
|
// Click through controls
|
||||||
await app.client.click(".LogControls .show-timestamps");
|
await app.client.elementClick(".LogControls .show-timestamps");
|
||||||
await app.client.click(".LogControls .show-previous");
|
await app.client.elementClick(".LogControls .show-previous");
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -418,35 +406,35 @@ describe("Lens cluster pages", () => {
|
|||||||
|
|
||||||
it("shows default namespace", async () => {
|
it("shows default namespace", async () => {
|
||||||
expect(clusterAdded).toBe(true);
|
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", "default");
|
||||||
await app.client.waitUntilTextExists("div.TableCell", "kube-system");
|
await app.client.waitUntilTextExists("div.TableCell", "kube-system");
|
||||||
});
|
});
|
||||||
|
|
||||||
it(`creates ${TEST_NAMESPACE} namespace`, async () => {
|
it(`creates ${TEST_NAMESPACE} namespace`, async () => {
|
||||||
expect(clusterAdded).toBe(true);
|
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", "default");
|
||||||
await app.client.waitUntilTextExists("div.TableCell", "kube-system");
|
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.waitUntilTextExists("div.AddNamespaceDialog", "Create Namespace");
|
||||||
await app.client.keys(`${TEST_NAMESPACE}\n`);
|
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 () => {
|
it(`creates a pod in ${TEST_NAMESPACE} namespace`, async () => {
|
||||||
expect(clusterAdded).toBe(true);
|
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.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(TEST_NAMESPACE);
|
||||||
await app.client.keys("Enter");// "\uE007"
|
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.waitUntilTextExists("li.MenuItem.create-resource-tab", "Create resource");
|
||||||
await app.client.click("li.MenuItem.create-resource-tab");
|
await app.client.elementClick("li.MenuItem.create-resource-tab");
|
||||||
await app.client.waitForVisible(".CreateResource div.ace_content");
|
await (await app.client.$(".CreateResource div.ace_content")).waitForDisplayed();
|
||||||
// Write pod manifest to editor
|
// Write pod manifest to editor
|
||||||
await app.client.keys("apiVersion: v1\n");
|
await app.client.keys("apiVersion: v1\n");
|
||||||
await app.client.keys("kind: Pod\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("- name: nginx-create-pod-test\n");
|
||||||
await app.client.keys(" image: nginx:alpine\n");
|
await app.client.keys(" image: nginx:alpine\n");
|
||||||
// Create deployment
|
// Create deployment
|
||||||
await app.client.waitForEnabled("button.Button=Create & Close");
|
await (await app.client.$("button.Button=Create & Close")).waitForEnabled();
|
||||||
await app.client.click("button.Button=Create & Close");
|
await app.client.elementClick("button.Button=Create & Close");
|
||||||
// Wait until first bits of pod appears on dashboard
|
// 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
|
// 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");
|
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) {
|
export async function addMinikubeCluster(app: Application) {
|
||||||
await app.client.waitForVisible("button.MuiSpeedDial-fab");
|
await (await app.client.$("button.MuiSpeedDial-fab")).waitForDisplayed();
|
||||||
await app.client.click("button.MuiSpeedDial-fab");
|
await app.client.elementClick("button.MuiSpeedDial-fab");
|
||||||
await app.client.waitForVisible(`button[title="Add from kubeconfig"]`);
|
await (await app.client.$(`button[title="Add from kubeconfig"]`)).waitForDisplayed();
|
||||||
await app.client.click(`button[title="Add from kubeconfig"]`);
|
await app.client.elementClick(`button[title="Add from kubeconfig"]`);
|
||||||
await app.client.waitUntilTextExists("div", "Select kubeconfig file");
|
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");
|
await app.client.waitUntilTextExists("div", "minikube");
|
||||||
|
|
||||||
if (!await app.client.$("button.primary").isEnabled()) {
|
if (!await app.client.isElementEnabled("button.primary")) {
|
||||||
await app.client.click("div.minikube"); // select minikube context
|
await app.client.elementClick("div.minikube"); // select minikube context
|
||||||
} // else the only context, which must be 'minikube', is automatically selected
|
} // 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.elementClick("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("button.primary"); // add minikube cluster
|
||||||
await app.client.waitUntilTextExists("div.TableCell", "minikube");
|
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) {
|
export async function waitForMinikubeDashboard(app: Application) {
|
||||||
await app.client.waitUntilTextExists("pre.kube-auth-out", "Authentication proxy started");
|
await app.client.waitUntilTextExists("pre.kube-auth-out", "Authentication proxy started");
|
||||||
await app.client.waitForExist(`iframe[name="minikube"]`);
|
await (await app.client.$(`iframe[name="minikube"]`)).waitForDisplayed();
|
||||||
await app.client.frame("minikube");
|
await (await app.client.$("iframe[name=minikube]")).waitForExist();
|
||||||
await app.client.waitUntilTextExists("span.link-text", "Cluster");
|
await app.client.waitUntilTextExists("span.link-text", "Cluster");
|
||||||
}
|
}
|
||||||
|
|||||||
@ -79,17 +79,17 @@ export async function appStart() {
|
|||||||
|
|
||||||
export async function clickWhatsNew(app: Application) {
|
export async function clickWhatsNew(app: Application) {
|
||||||
await app.client.waitUntilTextExists("h1", "What's new?");
|
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");
|
await app.client.waitUntilTextExists("div", "Catalog");
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function clickWelcomeNotification(app: Application) {
|
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") {
|
if (itemsText === "0 item") {
|
||||||
// welcome notification should be present, dismiss it
|
// welcome notification should be present, dismiss it
|
||||||
await app.client.waitUntilTextExists("div.message", "Welcome!");
|
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",
|
"mobx-react": "^6.2.2",
|
||||||
"mock-fs": "^4.12.0",
|
"mock-fs": "^4.12.0",
|
||||||
"moment": "^2.26.0",
|
"moment": "^2.26.0",
|
||||||
"node-pty": "^0.9.0",
|
"node-pty": "^0.10.0",
|
||||||
"npm": "^6.14.8",
|
"npm": "^6.14.8",
|
||||||
"openid-client": "^3.15.2",
|
"openid-client": "^3.15.2",
|
||||||
"p-limit": "^3.1.0",
|
"p-limit": "^3.1.0",
|
||||||
@ -321,7 +321,7 @@
|
|||||||
"css-loader": "^3.5.3",
|
"css-loader": "^3.5.3",
|
||||||
"deepdash": "^5.3.5",
|
"deepdash": "^5.3.5",
|
||||||
"dompurify": "^2.0.11",
|
"dompurify": "^2.0.11",
|
||||||
"electron": "^9.4.4",
|
"electron": "^11.4.3",
|
||||||
"electron-builder": "^22.10.5",
|
"electron-builder": "^22.10.5",
|
||||||
"electron-notarize": "^0.3.0",
|
"electron-notarize": "^0.3.0",
|
||||||
"eslint": "^7.7.0",
|
"eslint": "^7.7.0",
|
||||||
@ -357,7 +357,7 @@
|
|||||||
"react-window": "^1.8.5",
|
"react-window": "^1.8.5",
|
||||||
"sass-loader": "^8.0.2",
|
"sass-loader": "^8.0.2",
|
||||||
"sharp": "^0.26.1",
|
"sharp": "^0.26.1",
|
||||||
"spectron": "11.0.0",
|
"spectron": "^13.0.0",
|
||||||
"style-loader": "^1.2.1",
|
"style-loader": "^1.2.1",
|
||||||
"terser-webpack-plugin": "^3.0.3",
|
"terser-webpack-plugin": "^3.0.3",
|
||||||
"ts-jest": "^26.1.0",
|
"ts-jest": "^26.1.0",
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user