mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-02-16 10:58:30 -05:00
Update action run return type (#15568)
* Update action run return type * fix tests * Update rest * Add back null checks
This commit is contained in:
@@ -60,7 +60,7 @@ abstract class AsmtServerAction extends Action {
|
||||
super(id, label, TARGET_ICON_CLASS[AssessmentTargetType.Server]);
|
||||
}
|
||||
|
||||
public async run(context: IAsmtActionInfo): Promise<boolean> {
|
||||
public async run(context: IAsmtActionInfo): Promise<void> {
|
||||
this._telemetryService.sendActionEvent(TelemetryView.SqlAssessment, this.id);
|
||||
if (context && context.component && !context.component.isBusy) {
|
||||
context.component.showProgress(this.asmtType);
|
||||
@@ -87,11 +87,7 @@ abstract class AsmtServerAction extends Action {
|
||||
}
|
||||
|
||||
context.component.stopProgress(this.asmtType);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
abstract getServerItems(ownerUri: string): Thenable<SqlAssessmentResult>;
|
||||
@@ -137,16 +133,14 @@ export class AsmtDatabaseSelectItemsAction extends Action {
|
||||
TARGET_ICON_CLASS[AssessmentTargetType.Database]);
|
||||
}
|
||||
|
||||
public async run(context: IAsmtActionInfo): Promise<boolean> {
|
||||
public async run(context: IAsmtActionInfo): Promise<void> {
|
||||
this._telemetryService.sendActionEvent(TelemetryView.SqlAssessment, this.id);
|
||||
if (context && context.component && !context.component.isBusy) {
|
||||
context.component.showProgress(AssessmentType.AvailableRules);
|
||||
let dbAsmtResults = await this._assessmentService.getAssessmentItems(context.ownerUri, AssessmentTargetType.Database);
|
||||
context.component.showInitialResults(dbAsmtResults, AssessmentType.AvailableRules);
|
||||
context.component.stopProgress(AssessmentType.AvailableRules);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -185,16 +179,14 @@ export class AsmtDatabaseInvokeItemsAction extends Action {
|
||||
TARGET_ICON_CLASS[AssessmentTargetType.Database]);
|
||||
}
|
||||
|
||||
public async run(context: IAsmtActionInfo): Promise<boolean> {
|
||||
public async run(context: IAsmtActionInfo): Promise<void> {
|
||||
this._telemetryService.sendActionEvent(TelemetryView.SqlAssessment, this.id);
|
||||
if (context && context.component && !context.component.isBusy) {
|
||||
context.component.showProgress(AssessmentType.InvokeAssessment);
|
||||
let dbAsmtResults = await this._assessmentService.assessmentInvoke(context.ownerUri, AssessmentTargetType.Database);
|
||||
context.component.showInitialResults(dbAsmtResults, AssessmentType.InvokeAssessment);
|
||||
context.component.stopProgress(AssessmentType.InvokeAssessment);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -209,14 +201,12 @@ export class AsmtExportAsScriptAction extends Action {
|
||||
super(AsmtExportAsScriptAction.ID, AsmtExportAsScriptAction.LABEL, 'exportAsScriptIcon');
|
||||
}
|
||||
|
||||
public async run(context: IAsmtActionInfo): Promise<boolean> {
|
||||
public async run(context: IAsmtActionInfo): Promise<void> {
|
||||
this._telemetryService.sendActionEvent(TelemetryView.SqlAssessment, AsmtExportAsScriptAction.ID);
|
||||
const items = context?.component?.recentResult?.result.items;
|
||||
if (items) {
|
||||
await this._assessmentService.generateAssessmentScript(context.ownerUri, items);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -234,9 +224,9 @@ export class AsmtSamplesLinkAction extends Action {
|
||||
super(AsmtSamplesLinkAction.ID, AsmtSamplesLinkAction.LABEL, AsmtSamplesLinkAction.ICON);
|
||||
}
|
||||
|
||||
public async run(): Promise<boolean> {
|
||||
public async run(): Promise<void> {
|
||||
this._telemetryService.sendActionEvent(TelemetryView.SqlAssessment, AsmtSamplesLinkAction.ID);
|
||||
return this._openerService.open(URI.parse(AsmtSamplesLinkAction.configHelpUri));
|
||||
await this._openerService.open(URI.parse(AsmtSamplesLinkAction.configHelpUri));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -262,12 +252,12 @@ export class AsmtGenerateHTMLReportAction extends Action {
|
||||
return URI.file(filePath);
|
||||
}
|
||||
|
||||
public async run(context: IAsmtActionInfo): Promise<boolean> {
|
||||
public async run(context: IAsmtActionInfo): Promise<void> {
|
||||
context.component.showProgress(AssessmentType.ReportGeneration);
|
||||
const choosenPath = await this._fileDialogService.pickFileToSave(this.suggestReportFile(context.component.recentResult.dateUpdated));
|
||||
context.component.stopProgress(AssessmentType.ReportGeneration);
|
||||
if (!choosenPath) {
|
||||
return false;
|
||||
return;
|
||||
}
|
||||
|
||||
this._telemetryService.sendActionEvent(TelemetryView.SqlAssessment, AsmtGenerateHTMLReportAction.ID);
|
||||
@@ -291,7 +281,6 @@ export class AsmtGenerateHTMLReportAction extends Action {
|
||||
run: () => { }
|
||||
}]);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -137,8 +137,7 @@ suite('Assessment Actions', () => {
|
||||
assert.equal(action.id, AsmtServerSelectItemsAction.ID, 'Get Server Rules id action mismatch');
|
||||
assert.equal(action.label, AsmtServerSelectItemsAction.LABEL, 'Get Server Rules label action mismatch');
|
||||
|
||||
let result = await action.run({ ownerUri: '', component: mockAsmtViewComponent.object, connectionId: '' });
|
||||
assert.ok(result, 'Get Server Rules action should succeed');
|
||||
await action.run({ ownerUri: '', component: mockAsmtViewComponent.object, connectionId: '' });
|
||||
mockAsmtViewComponent.verify(s => s.showProgress(AssessmentType.AvailableRules), TypeMoq.Times.once());
|
||||
mockAssessmentService.verify(s => s.getAssessmentItems(TypeMoq.It.isAny(), AssessmentTargetType.Server), TypeMoq.Times.once());
|
||||
mockAsmtViewComponent.verify(s => s.showInitialResults(TypeMoq.It.isAny(), AssessmentType.AvailableRules), TypeMoq.Times.once());
|
||||
@@ -161,8 +160,7 @@ suite('Assessment Actions', () => {
|
||||
assert.equal(action.id, AsmtServerInvokeItemsAction.ID, 'Invoke Server Assessment id action mismatch');
|
||||
assert.equal(action.label, AsmtServerInvokeItemsAction.LABEL, 'Invoke Server Assessment label action mismatch');
|
||||
|
||||
let result = await action.run({ ownerUri: '', component: mockAsmtViewComponent.object, connectionId: '' });
|
||||
assert.ok(result, 'Invoke Server Assessment action should succeed');
|
||||
await action.run({ ownerUri: '', component: mockAsmtViewComponent.object, connectionId: '' });
|
||||
mockAsmtViewComponent.verify(s => s.showProgress(AssessmentType.InvokeAssessment), TypeMoq.Times.once());
|
||||
mockAssessmentService.verify(s => s.assessmentInvoke(TypeMoq.It.isAny(), AssessmentTargetType.Server), TypeMoq.Times.once());
|
||||
mockAsmtViewComponent.verify(s => s.showInitialResults(TypeMoq.It.isAny(), AssessmentType.InvokeAssessment), TypeMoq.Times.once());
|
||||
@@ -177,8 +175,7 @@ suite('Assessment Actions', () => {
|
||||
const action = new AsmtDatabaseSelectItemsAction('databaseName', mockAssessmentService.object, new NullAdsTelemetryService());
|
||||
assert.equal(action.id, AsmtDatabaseSelectItemsAction.ID, 'Get Database Rules id action mismatch');
|
||||
|
||||
let result = await action.run({ ownerUri: '', component: mockAsmtViewComponent.object, connectionId: '' });
|
||||
assert.ok(result, 'Get Assessment Database action should succeed');
|
||||
await action.run({ ownerUri: '', component: mockAsmtViewComponent.object, connectionId: '' });
|
||||
mockAsmtViewComponent.verify(s => s.showProgress(AssessmentType.AvailableRules), TypeMoq.Times.once());
|
||||
mockAsmtViewComponent.verify(s => s.showInitialResults(TypeMoq.It.isAny(), AssessmentType.AvailableRules), TypeMoq.Times.once());
|
||||
mockAsmtViewComponent.verify(s => s.stopProgress(AssessmentType.AvailableRules), TypeMoq.Times.once());
|
||||
@@ -190,8 +187,7 @@ suite('Assessment Actions', () => {
|
||||
const action = new AsmtDatabaseInvokeItemsAction('databaseName', mockAssessmentService.object, new NullAdsTelemetryService());
|
||||
assert.equal(action.id, AsmtDatabaseInvokeItemsAction.ID, 'Invoke Database Assessment id action mismatch');
|
||||
|
||||
let result = await action.run({ ownerUri: '', component: mockAsmtViewComponent.object, connectionId: '' });
|
||||
assert.ok(result, 'Invoke Database Assessment action should succeed');
|
||||
await action.run({ ownerUri: '', component: mockAsmtViewComponent.object, connectionId: '' });
|
||||
mockAsmtViewComponent.verify(s => s.showProgress(AssessmentType.InvokeAssessment), TypeMoq.Times.once());
|
||||
mockAsmtViewComponent.verify(s => s.showInitialResults(TypeMoq.It.isAny(), AssessmentType.InvokeAssessment), TypeMoq.Times.once());
|
||||
mockAsmtViewComponent.verify(s => s.stopProgress(AssessmentType.InvokeAssessment), TypeMoq.Times.once());
|
||||
@@ -204,8 +200,7 @@ suite('Assessment Actions', () => {
|
||||
assert.equal(action.id, AsmtExportAsScriptAction.ID, 'Generate Assessment script id action mismatch');
|
||||
assert.equal(action.label, AsmtExportAsScriptAction.LABEL, 'Generate Assessment script label action mismatch');
|
||||
|
||||
let result = await action.run({ ownerUri: '', component: mockAsmtViewComponent.object, connectionId: '' });
|
||||
assert.ok(result, 'Generate Script action should succeed');
|
||||
await action.run({ ownerUri: '', component: mockAsmtViewComponent.object, connectionId: '' });
|
||||
mockAssessmentService.verify(s => s.generateAssessmentScript(TypeMoq.It.isAnyString(), TypeMoq.It.isAny()), TypeMoq.Times.once());
|
||||
});
|
||||
|
||||
@@ -217,8 +212,7 @@ suite('Assessment Actions', () => {
|
||||
assert.equal(action.id, AsmtSamplesLinkAction.ID, 'Samples Link id action mismatch');
|
||||
assert.equal(action.label, AsmtSamplesLinkAction.LABEL, 'Samples Link label action mismatch');
|
||||
|
||||
let result = await action.run();
|
||||
assert.ok(result, 'Samples Link action should succeed');
|
||||
await action.run();
|
||||
openerService.verify(s => s.open(TypeMoq.It.isAny()), TypeMoq.Times.once());
|
||||
});
|
||||
|
||||
@@ -259,8 +253,7 @@ suite('Assessment Actions', () => {
|
||||
assert.equal(action.id, AsmtGenerateHTMLReportAction.ID, 'Generate HTML Report id action mismatch');
|
||||
assert.equal(action.label, AsmtGenerateHTMLReportAction.LABEL, 'Generate HTML Report label action mismatch');
|
||||
|
||||
let result = await action.run({ ownerUri: '', component: mockAsmtViewComponent.object, connectionId: '' });
|
||||
assert.ok(result, 'Generate HTML Report action should succeed');
|
||||
await action.run({ ownerUri: '', component: mockAsmtViewComponent.object, connectionId: '' });
|
||||
notificationService.verify(s => s.prompt(TypeMoq.It.isAny(), TypeMoq.It.isAny(), TypeMoq.It.isAny()), TypeMoq.Times.once());
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user