diff --git a/src/features/lightspeed/utils/explorerView.ts b/src/features/lightspeed/utils/explorerView.ts index bcc33f6f2..60314258c 100644 --- a/src/features/lightspeed/utils/explorerView.ts +++ b/src/features/lightspeed/utils/explorerView.ts @@ -70,12 +70,6 @@ export function getWebviewContentWithActiveSession( "style.css", ]); const nonce = getNonce(); - const generateForm = `
-
- Generate a playbook - -
-
`; const explainForm = `
${content} - ${generateForm} ${explainForm}
@@ -127,9 +120,6 @@ export function setWebviewMessageListener( case "connect": commands.executeCommand("ansible.lightspeed.oauth"); return; - case "generate": - commands.executeCommand("ansible.lightspeed.playbookGeneration"); - return; case "explain": commands.executeCommand("ansible.lightspeed.playbookExplanation"); return; diff --git a/src/webview/apps/lightspeed/explorer/main.ts b/src/webview/apps/lightspeed/explorer/main.ts index 118ebc1ab..a253d977b 100644 --- a/src/webview/apps/lightspeed/explorer/main.ts +++ b/src/webview/apps/lightspeed/explorer/main.ts @@ -19,10 +19,6 @@ function setListener(id: string, func: any) { function main() { setListener("lightspeed-explorer-connect", lightspeedConnect); - setListener( - "lightspeed-explorer-playbook-generation-submit", - lightspeedExplorerPlaybookGeneration, - ); setListener( "lightspeed-explorer-playbook-explanation-submit", lightspeedExplorerPlaybookExplanation, @@ -33,10 +29,6 @@ function lightspeedConnect() { vscode.postMessage({ command: "connect" }); } -function lightspeedExplorerPlaybookGeneration() { - vscode.postMessage({ command: "generate" }); -} - function lightspeedExplorerPlaybookExplanation() { vscode.postMessage({ command: "explain" }); } diff --git a/test/ui-test/lightspeedOneClickTrialUITest.ts b/test/ui-test/lightspeedOneClickTrialUITest.ts index 66a27ef0e..cd4851a75 100644 --- a/test/ui-test/lightspeedOneClickTrialUITest.ts +++ b/test/ui-test/lightspeedOneClickTrialUITest.ts @@ -11,7 +11,6 @@ import { ViewControl, ViewSection, VSBrowser, - until, WebElement, WebView, WebviewView, @@ -31,12 +30,6 @@ import axios from "axios"; const trialNotificationMessage = "Ansible Lightspeed is not configured for your organization, click here to start a 90-day trial."; -before(function () { - if (process.platform !== "darwin") { - this.skip(); - } -}); - describe("Test One Click Trial feature", () => { let workbench: Workbench; let explorerView: WebviewView; @@ -265,11 +258,6 @@ describe("Test One Click Trial feature", () => { await tab.select(); await tab.sendKeys(Key.CONTROL, "z", "z", "z", Key.NULL); await editorView.closeAllEditors(); - - // The undo's don't seem to (always) work.. So discard changes - const dialog = new ModalDialog(); - await dialog.pushButton(`Don't Save`); - await dialog.getDriver().wait(until.stalenessOf(dialog), 2000); }); it("Sign out using Accounts global action", async () => { diff --git a/test/ui-test/lightspeedUiTestExplorerTest.ts b/test/ui-test/lightspeedUiTestExplorerTest.ts deleted file mode 100644 index 8452412e3..000000000 --- a/test/ui-test/lightspeedUiTestExplorerTest.ts +++ /dev/null @@ -1,240 +0,0 @@ -// BEFORE: ansible.lightspeed.enabled: true - -import { - ActionsControl, - ActivityBar, - By, - ContextMenu, - EditorView, - InputBox, - ModalDialog, - SideBarView, - VSBrowser, - ViewControl, - ViewSection, - WebView, - WebviewView, - Workbench, -} from "vscode-extension-tester"; -import { - getFixturePath, - getModalDialogAndMessage, - getWebviewByLocator, - sleep, - workbenchExecuteCommand, -} from "./uiTestHelper"; -import { WizardGenerationActionType } from "../../src/definitions/lightspeed"; -import { PlaybookGenerationActionEvent } from "../../src/interfaces/lightspeed"; -import { expect } from "chai"; -import axios from "axios"; - -describe("Test Lightspeed Explorer features", () => { - let workbench: Workbench; - let explorerView: WebviewView; - let modalDialog: ModalDialog; - let dialogMessage: string; - let sideBar: SideBarView; - let view: ViewControl; - let adtView: ViewSection; - - beforeEach(function () { - if (process.platform === "darwin") { - this.skip(); - } - - if (!process.env.TEST_LIGHTSPEED_URL) { - this.skip(); - } - }); - - before(async () => { - // We need this because before() is called ... before beforeEach() - if (process.platform === "darwin") { - return; - } - - if (!process.env.TEST_LIGHTSPEED_URL) { - return; - } - - // Enable Lightspeed and open Ansible Light view on sidebar - workbench = new Workbench(); - // Close settings and other open editors (if any) - await new EditorView().closeAllEditors(); - - // Set "UI Test" and "One Click" options for mock server - await axios.post( - `${process.env.TEST_LIGHTSPEED_URL}/__debug__/options`, - ["--ui-test"], - { headers: { "Content-Type": "application/json" } }, - ); - }); - - it("Focus on Ansible Lightspeed View", async () => { - view = (await new ActivityBar().getViewControl("Ansible")) as ViewControl; - sideBar = await view.openView(); - - adtView = await sideBar - .getContent() - .getSection("Ansible Development Tools"); - adtView.collapse(); - - await sleep(3000); - explorerView = new WebviewView(); - expect(explorerView, "contentCreatorWebView should not be undefined").not.to - .be.undefined; - }); - - it("Click Connect button Ansible Lightspeed webview", async () => { - await explorerView.switchToFrame(5000); - - const connectButton = await explorerView.findWebElement( - By.id("lightspeed-explorer-connect"), - ); - expect(connectButton).not.to.be.undefined; - if (connectButton) { - await connectButton.click(); - } - await explorerView.switchBack(); - }); - - it("Click Allow to use Lightspeed", async () => { - // Click Allow to use Lightspeed - const { dialog, message } = await getModalDialogAndMessage(true); - expect(message).equals( - "The extension 'Ansible' wants to sign in using Ansible Lightspeed.", - ); - await dialog.pushButton("Allow"); - }); - - it("Verify a modal dialog pops up", async () => { - const { dialog, message } = await getModalDialogAndMessage(); - expect(dialog).not.to.be.undefined; - expect(message).not.to.be.undefined; - modalDialog = dialog; - dialogMessage = message; - }); - - it("Click Open if a dialog shows up for opening the external website", async () => { - // If the dialog to open the external website is not suppressed, click Open - if (dialogMessage === "Do you want Code to open the external website?") { - await modalDialog.pushButton("Configure Trusted Domains"); - const input = await InputBox.create(); - input.confirm(); - - const d = await getModalDialogAndMessage(); - modalDialog = d.dialog; - dialogMessage = d.message; - } - }); - - it("Click Open to open the callback URI", async () => { - // Click Open to allow Ansible extension to open the callback URI - expect(dialogMessage).equals("Allow 'Ansible' extension to open this URI?"); - await modalDialog.pushButton("Open"); - await sleep(2000); - }); - - it("Verify Ansible Lightspeed Generate Playbook button", async () => { - await explorerView.switchToFrame(2000); - - const generatePlaybookButton = await explorerView.findWebElement( - By.id("lightspeed-explorer-playbook-generation-submit"), - ); - expect(generatePlaybookButton).not.to.be.undefined; - - // Open playbook generation webview. - await generatePlaybookButton.click(); - await sleep(2000); - - // Locate the playbook explanation webview - await explorerView.switchBack(); - const webView = await getWebviewByLocator( - By.xpath("//*[text()='Create a playbook with Ansible Lightspeed']"), - ); - expect(webView, "webView should not be undefined").not.to.be.undefined; - - await webView.switchBack(); - await workbenchExecuteCommand("View: Close All Editor Groups"); - - /* verify generated events */ - const expected = [ - [WizardGenerationActionType.OPEN, undefined, 1], - [WizardGenerationActionType.CLOSE_CANCEL, 1, undefined], - ]; - const res = await axios.get( - `${process.env.TEST_LIGHTSPEED_URL}/__debug__/feedbacks`, - ); - expect(res.data.feedbacks.length).equals(expected.length); - for (let i = 0; i < expected.length; i++) { - const evt: PlaybookGenerationActionEvent = - res.data.feedbacks[i].playbookGenerationAction; - expect(evt.action).equals(expected[i][0]); - expect(evt.fromPage).equals(expected[i][1]); - expect(evt.toPage).equals(expected[i][2]); - } - }); - - it("Verify Ansible Lightspeed Explain Playbook button", async () => { - const folder = "lightspeed"; - const file = "playbook_4.yml"; - const filePath = getFixturePath(folder, file); - - // Open file in the editor - await VSBrowser.instance.openResources(filePath); - - await explorerView.switchToFrame(2000); - - const explainPlaybookButton = await explorerView.findWebElement( - By.id("lightspeed-explorer-playbook-explanation-submit"), - ); - expect(explainPlaybookButton).not.to.be.undefined; - - // Open playbook explanation webview. - await explainPlaybookButton.click(); - await sleep(2000); - - // Locate the playbook explanation webview - await explorerView.switchBack(); - let webView = (await new EditorView().openEditor( - "Explanation", - 1, - )) as WebView; - expect(webView, "webView should not be undefined").not.to.be.undefined; - webView = await getWebviewByLocator( - By.xpath("//div[@class='playbookGeneration']"), - ); - await webView.findWebElement( - By.xpath("//h2[contains(text(), 'Playbook Overview and Structure')]"), - ); - - await webView.switchBack(); - await workbenchExecuteCommand("View: Close All Editor Groups"); - - /* verify generated events */ - const res = await axios.get( - `${process.env.TEST_LIGHTSPEED_URL}/__debug__/feedbacks`, - ); - expect(res.data.feedbacks.length).equals(1); - }); - - it("Sign out using Accounts global action", async () => { - workbench = new Workbench(); - const activityBar = new ActivityBar(); - const actions = (await activityBar.getGlobalAction( - "Accounts", - )) as ActionsControl; - expect(actions).not.to.be.undefined; - await actions.click(); - const menus = await workbench.findElements(By.className("context-view")); - expect(menus.length).greaterThan(0); - const menu = new ContextMenu(workbench); - expect(menu).not.to.be.undefined; - if (menu) { - await menu.select( - "EXTERNAL_USERNAME (licensed) (Ansible Lightspeed)", - "Sign Out", - ); - } - }); -}); diff --git a/test/ui-test/lightspeedUiTestPlaybookGenTest.ts b/test/ui-test/lightspeedUiTestPlaybookGenTest.ts index 00bf0a1ed..038e56d04 100644 --- a/test/ui-test/lightspeedUiTestPlaybookGenTest.ts +++ b/test/ui-test/lightspeedUiTestPlaybookGenTest.ts @@ -7,7 +7,6 @@ import { Workbench, VSBrowser, EditorView, - until, WebView, ModalDialog, } from "vscode-extension-tester"; @@ -145,7 +144,6 @@ describe("Verify playbook generation features work as expected", function () { await workbenchExecuteCommand("View: Close All Editor Groups"); const dialog = new ModalDialog(); await dialog.pushButton(`Don't Save`); - await dialog.getDriver().wait(until.stalenessOf(dialog), 2000); /* verify generated events */ const expected = [ diff --git a/test/ui-test/lightspeedUiTestPlaybookGenWebviewPart2Test.ts b/test/ui-test/lightspeedUiTestPlaybookGenWebviewPart2Test.ts index 31af13088..a1ba626ba 100644 --- a/test/ui-test/lightspeedUiTestPlaybookGenWebviewPart2Test.ts +++ b/test/ui-test/lightspeedUiTestPlaybookGenWebviewPart2Test.ts @@ -7,7 +7,6 @@ import { Workbench, VSBrowser, EditorView, - until, WebView, ModalDialog, } from "vscode-extension-tester"; @@ -174,7 +173,6 @@ describe("Verify playbook generation features work as expected", function () { await workbenchExecuteCommand("View: Close All Editor Groups"); const dialog = new ModalDialog(); await dialog.pushButton(`Don't Save`); - await dialog.getDriver().wait(until.stalenessOf(dialog), 2000); /* verify generated events */ const expected = [ diff --git a/test/ui-test/walkthroughUiTest.ts b/test/ui-test/walkthroughUiTest.ts index c07f6c90a..3bb63ad5a 100644 --- a/test/ui-test/walkthroughUiTest.ts +++ b/test/ui-test/walkthroughUiTest.ts @@ -4,7 +4,6 @@ import { EditorView, ModalDialog, SettingsEditor, - until, Workbench, } from "vscode-extension-tester"; import { updateSettings, sleep } from "./uiTestHelper"; @@ -99,6 +98,5 @@ describe("Check walkthroughs, elements and associated commands", async () => { await workbench.executeCommand("View: Close All Editor Groups"); const dialogBox = new ModalDialog(); await dialogBox.pushButton(`Don't Save`); - await dialogBox.getDriver().wait(until.stalenessOf(dialogBox), 2000); }); });