Enable manage packages smoke test (#19504)

* fix page being reset twice and add back smoke test

* add missing await

* check pyarrow info loaded

* install latest package version

* fix version select box selector

* split out into two PRs
This commit is contained in:
Lucy Zhang
2022-05-26 12:00:51 -07:00
committed by GitHub
parent b64b3f6b0b
commit c0ad66b823
2 changed files with 12 additions and 11 deletions

View File

@@ -19,7 +19,7 @@ export class ManagePackagesDialog extends Dialog {
await this.waitForNewDialog();
}
async addNewPackage(packageName: string, packageVersion: string = ''): Promise<void> {
async addNewPackage(packageName: string): Promise<string> {
const addNewTab = `${ManagePackagesDialog.dialogPage} div[class="tab-header"][aria-controls="dialogPane.Manage Packages.1"]`;
await this.code.waitAndClick(addNewTab);
@@ -37,12 +37,12 @@ export class ManagePackagesDialog extends Dialog {
const searchButton = `${ManagePackagesDialog.dialogPage} a[class="monaco-button monaco-text-button"][aria-label="Search"][aria-disabled="false"]`;
await this.code.waitAndClick(searchButton);
if (packageVersion) {
const versionSelectBox = `${ManagePackagesDialog.dialogPage} select[class="monaco-select-box monaco-select-box-dropdown-padding"][aria-label="Package Version"]`;
const versionOption = `${versionSelectBox} option[value="${packageVersion}]`;
this.code.waitForElement(versionOption);
this.code.waitForSetValue(versionSelectBox, packageVersion);
}
const packageNameSelector = `${ManagePackagesDialog.dialogPage} div[id="textContainer"] span`;
await this.code.waitForTextContent(packageNameSelector, packageName);
// Get the latest package version
const versionSelectBox = `${ManagePackagesDialog.dialogPage} select[aria-label="Package Version"] option`;
let packageVersion = await this.code.waitForTextContent(versionSelectBox);
const installButton = `${ManagePackagesDialog.dialogPage} a[class="monaco-button monaco-text-button"][aria-label="Install"][aria-disabled="false"]`;
await this.code.waitAndClick(installButton);
@@ -57,5 +57,7 @@ export class ManagePackagesDialog extends Dialog {
const closeButton = '.modal .modal-footer a[class="monaco-button monaco-text-button"][aria-label="Close"][aria-disabled="false"]';
await this.code.waitAndClick(closeButton);
await this.waitForDialogGone();
return packageVersion;
}
}

View File

@@ -86,8 +86,7 @@ export function setup(opts: minimist.ParsedArgs) {
await app.workbench.sqlNotebook.waitForActiveCellResults();
});
// Skip this test for now since it is not stable - the way that the wizard is initialized needs to be refactored
it.skip('can add a new package from the Manage Packages wizard', async function () {
it('can add a new package from the Manage Packages wizard', async function () {
const app = this.app as Application;
await app.workbench.sqlNotebook.newUntitledNotebook();
await app.workbench.sqlNotebook.notebookToolbar.waitForKernel('SQL');
@@ -101,9 +100,9 @@ export function setup(opts: minimist.ParsedArgs) {
await app.workbench.sqlNotebook.notebookToolbar.managePackages();
await app.workbench.managePackagesDialog.waitForManagePackagesDialog();
await app.workbench.managePackagesDialog.addNewPackage('pyarrow', '7.0.0');
let packageVersion = await app.workbench.managePackagesDialog.addNewPackage('pyarrow');
await app.workbench.taskPanel.showTaskPanel();
await app.workbench.taskPanel.waitForTaskComplete('Installing pyarrow 7.0.0 succeeded');
await app.workbench.taskPanel.waitForTaskComplete(`Installing pyarrow ${packageVersion} succeeded`);
// There should be no error output when running the cell after pyarrow has been installed
await app.workbench.sqlNotebook.runActiveCell();