Skip to content

Commit

Permalink
Changes after addressing review comments
Browse files Browse the repository at this point in the history
  • Loading branch information
SuparnaSuresh committed Nov 6, 2024
1 parent 2cf8f32 commit 9bc6186
Show file tree
Hide file tree
Showing 9 changed files with 599 additions and 879 deletions.
38 changes: 38 additions & 0 deletions src/test/GradleTestDevModeActionsPathWSInit.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
/**
* Copyright (c) 2024 IBM Corporation.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0 which is available at
* http://www.eclipse.org/legal/epl-2.0.
*
* SPDX-License-Identifier: EPL-2.0
*/

import { WebDriver, VSBrowser } from 'vscode-extension-tester';
import * as utils from './utils/testUtils';

describe('Open Gradle Project - Project name with space', () => {

let driver: WebDriver;

before(() => {

/**
* Create new gradle project name with space in the directory
*/

utils.getRenamedProject();
driver = VSBrowser.instance.driver;

});

it('Open Sample Gradle Project - Project name with space', async () => {

await utils.delay(8000);
await VSBrowser.instance.openResources(utils.getGradleProjectPathWithSpace());

}).timeout(25000);

});


270 changes: 270 additions & 0 deletions src/test/GradleTestDevModeActionsPathWSTasks.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,270 @@
/**
* Copyright (c) 2024 IBM Corporation.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0 which is available at
* http://www.eclipse.org/legal/epl-2.0.
*
* SPDX-License-Identifier: EPL-2.0
*/

import { expect } from 'chai';
import { SideBarView, ViewSection, EditorView, DefaultTreeItem, DebugView } from 'vscode-extension-tester';
import * as utils from './utils/testUtils';
import * as constants from './definitions/constants';
import path = require('path');

describe('Devmode action tests for Gradle Project- Project name with space', () => {

let sidebar: SideBarView;
let debugView: DebugView;
let section: ViewSection;
let item: DefaultTreeItem;
let tabs: string[];

before(() => {

sidebar = new SideBarView();
debugView = new DebugView();

});

it('getViewControl works with the correct label', async () => {

const contentPart = sidebar.getContent();
section = await contentPart.getSection('Liberty Dashboard');
console.log("Found Liberty Dashboard....");
expect(section).not.undefined;

}).timeout(25000);

it('Open dasboard shows items - Gradle', async () => {

await utils.delay(85000);
await section.expand();
await utils.delay(6000);
const menu = await section.getVisibleItems();
expect(menu).not.empty;
item = await section.findItem(constants.GRADLE_PROJECT_WSP) as DefaultTreeItem;
expect(item).not.undefined;

}).timeout(300000);

it('Start gradle project from liberty dashboard', async () => {

await utils.launchDashboardAction(item, constants.START_DASHBOARD_ACTION, constants.START_DASHBOARD_MAC_ACTION);
await utils.delay(30000);
const serverStartStatus = await utils.checkTerminalforServerState(constants.SERVER_START_STRING);
if (!serverStartStatus)
console.log("Server started message not found in the terminal");
else {
console.log("Server succuessfully started");
await utils.launchDashboardAction(item, constants.STOP_DASHBOARD_ACTION, constants.STOP_DASHBOARD_MAC_ACTION);
const serverStopStatus = await utils.checkTerminalforServerState(constants.SERVER_STOP_STRING);
if (!serverStopStatus) {
console.error("Server stopped message not found in the terminal");
}
else
console.log("Server stopped successfully");
expect(serverStopStatus).to.be.true;
}
expect(serverStartStatus).to.be.true;

}).timeout(350000);

it('Run tests for gradle project', async () => {

await utils.launchDashboardAction(item, constants.START_DASHBOARD_ACTION, constants.START_DASHBOARD_MAC_ACTION);
await utils.delay(30000);
const serverStartStatus = await utils.checkTerminalforServerState(constants.SERVER_START_STRING);
console.log("after checkTerminalforServerState");
if (!serverStartStatus)
console.log("Server started message not found in the terminal");
else {
console.log("Server succuessfully started");
await utils.launchDashboardAction(item, constants.RUNTEST_DASHBOARD_ACTION, constants.RUNTEST_DASHBOARD_MAC_ACTION);
const testStatus = await utils.checkTestStatus(constants.GRADLE_TEST_RUN_STRING);
await utils.launchDashboardAction(item, constants.STOP_DASHBOARD_ACTION, constants.STOP_DASHBOARD_MAC_ACTION);
const serverStopStatus = await utils.checkTerminalforServerState(constants.SERVER_STOP_STRING);
if (!serverStopStatus)
console.error("Server stopped message not found in the terminal");
else
console.log("Server stopped successfully");
expect(serverStopStatus).to.be.true;
expect(testStatus).to.be.true;
}
expect(serverStartStatus).to.be.true;

}).timeout(350000);

it('start gradle with options from liberty dashboard', async () => {

const reportPath = path.join(utils.getGradleProjectPathWithSpace(), "build", "reports", "tests", "test", "index.html");
const deleteReport = await utils.deleteReports(reportPath);
expect(deleteReport).to.be.true;
await utils.launchDashboardAction(item, constants.START_DASHBOARD_ACTION_WITH_PARAM, constants.START_DASHBOARD_MAC_ACTION_WITH_PARAM);
await utils.setCustomParameter("--hotTests");
await utils.delay(30000);
const serverStartStatus = await utils.checkTerminalforServerState(constants.SERVER_START_STRING);
if (!serverStartStatus)
console.log("Server started with params message not found in terminal ");
else {
console.log("Server succuessfully started");
let checkFile = await utils.checkIfTestReportExists(reportPath);
await utils.launchDashboardAction(item, constants.STOP_DASHBOARD_ACTION, constants.STOP_DASHBOARD_MAC_ACTION);
console.log("after dashboard action");
const serverStopStatus = await utils.checkTerminalforServerState(constants.SERVER_STOP_STRING);
if (!serverStopStatus)
console.error("Server stopped message not found in ther terminal");
else
console.log("Server stopped successfully");
expect(serverStopStatus).to.be.true;
expect(checkFile).to.be.true;
}
expect(serverStartStatus).to.be.true;

}).timeout(550000);

it('start gradle with history from liberty dashboard', async () => {

const reportPath = path.join(utils.getGradleProjectPathWithSpace(), "build", "reports", "tests", "test", "index.html");
const deleteReport = await utils.deleteReports(reportPath);
expect(deleteReport).to.be.true;
await utils.launchDashboardAction(item, constants.START_DASHBOARD_ACTION_WITH_PARAM, constants.START_DASHBOARD_MAC_ACTION_WITH_PARAM);
const foundCommand = await utils.chooseCmdFromHistory("--hotTests");
console.log("foundcmd:" + foundCommand);
expect(foundCommand).to.be.true;
await utils.delay(30000);
const serverStartStatus = await utils.checkTerminalforServerState(constants.SERVER_START_STRING);
if (!serverStartStatus)
console.log("Server started with params message not found in the terminal ");
else {
console.log("Server succuessfully started");
let checkFile = await utils.checkIfTestReportExists(reportPath);
await utils.launchDashboardAction(item, constants.STOP_DASHBOARD_ACTION, constants.STOP_DASHBOARD_MAC_ACTION);
const serverStopStatus = await utils.checkTerminalforServerState(constants.SERVER_STOP_STRING);
if (!serverStopStatus)
console.error("Server stopped message not found in terminal");
else
console.log("Server stopped successfully");
expect(serverStopStatus).to.be.true;
expect(checkFile).to.be.true;
}
expect(serverStartStatus).to.be.true;

}).timeout(350000);

it('attach debugger for gradle with custom parameter event', async () => {

console.log("start attach debugger");
let isServerRunning: Boolean = true;
let attachStatus: Boolean = false;
try {
await utils.launchDashboardAction(item, constants.START_DASHBOARD_ACTION_WITH_PARAM, constants.START_DASHBOARD_MAC_ACTION_WITH_PARAM);
await utils.setCustomParameter("-DdebugPort=7777");
await utils.delay(30000);

isServerRunning = await utils.checkTerminalforServerState(constants.SERVER_START_STRING);
if (!isServerRunning)
console.log("Server started with params message not found in terminal");
else {
console.log("Server succuessfully started");
await utils.launchDashboardAction(item, constants.ATTACH_DEBUGGER_DASHBOARD_ACTION, constants.ATTACH_DEBUGGER_DASHBOARD_MAC_ACTION);
console.log("Attach Debugger action done");
await utils.delay(8000);
const contentPart = debugView.getContent();

let mysecarry: Promise<ViewSection[]> = contentPart.getSections();
let mysecmap: IterableIterator<[number, ViewSection]> = (await mysecarry).entries();
for (const [key, value] of (mysecmap)) {
if ((await value.getEnclosingElement().getText()).includes("BREAKPOINTS")) {
console.log("Found Breakpoints");
attachStatus = true;
break;
}
}

await utils.stopLibertyserver();
isServerRunning = !await utils.checkTerminalforServerState(constants.SERVER_STOP_STRING); //negate isServerRunning
if (!isServerRunning)
console.log("Server stopped successfully ");
}
} catch (e) {
console.error("error - ", e)
} finally {
console.log("finally block: is server running - ", isServerRunning);
if (isServerRunning) {
utils.stopLibertyserver();
}
else
console.log("good to close test - Attach Debugger for start with custom parameter(-DdebugPort=7777) event");
}
expect(attachStatus).to.be.true;
}).timeout(550000);

it('start gradle with docker from liberty dashboard', async () => {

if ((process.platform === 'darwin') || (process.platform === 'win32') || (process.platform == 'linux')) {
//skip running for platforms , enable them for linux after resolving docker setup in GHA
return true;
}

await utils.launchDashboardAction(item, constants.START_DASHBOARD_ACTION_WITHDOCKER, constants.START_DASHBOARD_MAC_ACTION_WITHDOCKER);
await utils.delay(60000);
const serverStartStatus = await utils.checkTerminalforServerState(constants.SERVER_START_STRING);
if (!serverStartStatus)
console.log("Server started message not found in the terminal");
else {
console.log("Server succuessfully started");
await utils.launchDashboardAction(item, constants.STOP_DASHBOARD_ACTION, constants.STOP_DASHBOARD_MAC_ACTION);
const serverStopStatus = await utils.checkTerminalforServerState(constants.SERVER_STOP_STRING);
if (!serverStopStatus) {
console.error("Server stopped message not found in the terminal");
}
else
console.log("Server stopped successfully");
expect(serverStopStatus).to.be.true;
}
expect(serverStartStatus).to.be.true;

}).timeout(350000);

it('View test report for gradle project', async () => {

if ((process.platform === 'darwin') || (process.platform === 'win32') || (process.platform == 'linux')) {
//skip running for platforms , enable once https://github.com/OpenLiberty/liberty-tools-vscode/issues/266 is resolved
return true;
}

await utils.launchDashboardAction(item, constants.GRADLE_TR_DASHABOARD_ACTION, constants.GRADLE_TR_DASHABOARD_MAC_ACTION);
tabs = await new EditorView().getOpenEditorTitles();
// expect (tabs[1]], "Gradle test report not found").to.equal(constants.GRADLE_TEST_REPORT_TITLE);
expect(tabs.indexOf(constants.GRADLE_TEST_REPORT_TITLE) > -1, "Gradle test report not found").to.equal(true);

}).timeout(30000);

/*
* Now, clear the command history of the "command palette" to avoid receiving "recently used" suggestions.
* This action should be performed at the end of Gradle Project tests.
*/

it('Clear Command Palatte', async () => {

await utils.clearCommandPalette();

}).timeout(100000);

after(() => {
const gradleProjectPath = path.join(__dirname, "..", "..", "src", "test", "resources", "gradle project");
console.log("Current path __dirname: " + __dirname);
console.log("Removing project from the path: " + gradleProjectPath);

/**
* Remove newly created project after test case execution
*/

utils.removeProjectFolder(gradleProjectPath);
});

});

20 changes: 0 additions & 20 deletions src/test/GradleTestDevModeActionsWSProjectNameInit.ts

This file was deleted.

Loading

0 comments on commit 9bc6186

Please sign in to comment.