Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fixes for report being created at a new location using the latest surefire plugin #347

Merged
merged 13 commits into from
Nov 21, 2024
Merged
59 changes: 44 additions & 15 deletions src/liberty/devCommands.ts
Original file line number Diff line number Diff line change
Expand Up @@ -490,28 +490,29 @@ export async function openReport(reportType: string, libProject?: LibertyProject
if (path !== undefined) {
let report: any;
if (libProject.getContextValue() === LIBERTY_MAVEN_PROJECT || libProject.getContextValue() === LIBERTY_MAVEN_PROJECT_CONTAINER) {
report = Path.join(path, "target", "site", reportType + "-report.html");
//report = Path.join(path, "target", "site", reportType + "-report.html");
report = getReportFile(path,"reports",reportType+".html");
} else if (libProject.getContextValue() === LIBERTY_GRADLE_PROJECT || libProject.getContextValue() === LIBERTY_GRADLE_PROJECT_CONTAINER) {
report = await getGradleTestReport(libProject.path, path);
}
let reportTypeLabel = reportType;
if (reportType === "gradle") {
reportTypeLabel = "test";
}
fs.exists(report, (exists) => {
if (exists) {
const panel = vscode.window.createWebviewPanel(
reportType, // Identifies the type of the webview. Used internally
libProject.getLabel() + " " + reportTypeLabel + " report", // Title of the panel displayed to the user
vscode.ViewColumn.Two, // Open the panel in the second window
{}, // Webview options
);
panel.webview.html = getReport(report); // display HTML content
} else {
const message = localize("test.report.does.not.exist.run.test.first", report);
vscode.window.showInformationMessage(message);
if(libProject.getContextValue() === LIBERTY_MAVEN_PROJECT || libProject.getContextValue() === LIBERTY_MAVEN_PROJECT_CONTAINER){
console.log("report path ::"+report)
if(!await checkReportExists(report,reportType,reportTypeLabel,libProject)){
report = getReportFile(path,"site",reportType+"-report.html");
if(!await checkReportExists(report,reportType,reportTypeLabel,libProject)){
const message = localize("test.report.does.not.exist.run.test.first", report);
vscode.window.showInformationMessage(message);
}
}
});
}else if(!await checkReportExists(report,reportType,reportTypeLabel,libProject)){
const message = localize("test.report.does.not.exist.run.test.first", report);
vscode.window.showInformationMessage(message);
}

}
} else if (ProjectProvider.getInstance() && reportType) {
showProjects(reportType, openReport, reportType);
Expand Down Expand Up @@ -610,4 +611,32 @@ async function getLocalGradleWrapper(projectFolder: string): Promise<string | un
*/
function isWin(): boolean {
return process.platform.startsWith("win");
}
}

function getReportFile(path :any,dir :string,filename:string):any{
console.log("inside getReportFile path::"+path+"::dir::"+dir+"::fileName::"+filename);
console.log("::path::"+Path.join(path,"target",dir,filename));
return Path.join(path,"target",dir, filename);
}

/*
Function will check if the report is available within the given path and returns a boolean based on it and also
the report will be displayed if it is available
*/
function checkReportExists(report : any,reportType : string,reportTypeLabel: string,libProject :LibertyProject): Promise<boolean> {
return new Promise((resolve) => {
fs.exists(report, (exists) => {
if(exists){
const panel = vscode.window.createWebviewPanel(
reportType, // Identifies the type of the webview. Used internally
libProject.getLabel() + " " + reportTypeLabel + " report", // Title of the panel displayed to the user
vscode.ViewColumn.Two, // Open the panel in the second window
{}, // Webview options
);
panel.webview.html = getReport(report); // display HTML content
}
console.log("report available::"+exists);
resolve(exists);
});
});
}
18 changes: 12 additions & 6 deletions src/test/MavenTestDevModeActions.ts
Original file line number Diff line number Diff line change
Expand Up @@ -99,8 +99,10 @@ it('Run tests for sample maven project', async () => {
it('start maven with options from liberty dashboard', async () => {

const reportPath = path.join(utils.getMvnProjectPath(),"target","site","failsafe-report.html");
const deleteReport = await utils.deleteReports(reportPath);
expect (deleteReport).to.be.true;
const reportPath35 = path.join(utils.getMvnProjectPath(),"target","reports","failsafe.html");
let deleteReport = await utils.deleteReports(reportPath);
let deleteReport35 = await utils.deleteReports(reportPath35);
expect (deleteReport||deleteReport35).to.be.true;
await utils.launchDashboardAction(item, constants.START_DASHBOARD_ACTION_WITH_PARAM, constants.START_DASHBOARD_MAC_ACTION_WITH_PARAM);
await utils.setCustomParameter("-DhotTests=true");
await utils.delay(30000);
Expand All @@ -111,7 +113,8 @@ it('start maven with options from liberty dashboard', async () => {
{
console.log("Server succuessfully started");
let checkFile = await utils.checkIfTestReportExists(reportPath);
expect (checkFile).to.be.true;
let checkFile35 = await utils.checkIfTestReportExists(reportPath35);
expect (checkFile || checkFile35).to.be.true;
await utils.launchDashboardAction(item, constants.STOP_DASHBOARD_ACTION, constants.STOP_DASHBOARD_MAC_ACTION);
const serverStopStatus= await utils.checkTerminalforServerState(constants.SERVER_STOP_STRING);
if(!serverStopStatus){
Expand All @@ -129,8 +132,10 @@ it('start maven with options from liberty dashboard', async () => {
it('start maven with history from liberty dashboard', async () => {

const reportPath = path.join(utils.getMvnProjectPath(),"target","site","failsafe-report.html");
const deleteReport = await utils.deleteReports(reportPath);
expect (deleteReport).to.be.true;
const reportPath35 = path.join(utils.getMvnProjectPath(),"target","reports","failsafe.html");
let deleteReport = await utils.deleteReports(reportPath);
let deleteReport35 = await utils.deleteReports(reportPath35);
expect (deleteReport || deleteReport35).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("-DhotTests=true");
expect (foundCommand).to.be.true;
Expand All @@ -142,7 +147,8 @@ it('start maven with history from liberty dashboard', async () => {
{
console.log("Server succuessfully started");
let checkFile = await utils.checkIfTestReportExists(reportPath);
expect (checkFile).to.be.true;
let checkFile35 = await utils.checkIfTestReportExists(reportPath35);
expect (checkFile || checkFile35).to.be.true;
await utils.launchDashboardAction(item, constants.STOP_DASHBOARD_ACTION, constants.STOP_DASHBOARD_MAC_ACTION);
const serverStopStatus= await utils.checkTerminalforServerState(constants.SERVER_STOP_STRING);
if(!serverStopStatus){
Expand Down
Loading