Additional tests for the import wizard (#11273)

* Setting up tests on import extension

* -Added API wrappers for all the azdata and vscode APIs to make them easily mockable
-Added some unit tests for the import extension
-Some code logic separations

* -added code report for the import extension in ci

* Did some more code refractoring

* -Added json report generation

* updated vscodetestcoverage to latest version in import extension.

* -remove duplicate codecoverageConfig.json

* -Added some modifyColumnPage tests

* pushing temp changes

* -Added some more testcases

* -Added tests using available vscode and azdata apis

* some minor comment change

* removed unnecessary test

* added accidently removed test

* Added some comments

* fixed some broken tests and added comments in fileConfigPage

* code clean up and some more comments

* fixed the prosePreviewPage test and the download test

* added getter and setters

* Increasing timeout and fixing a comment

* removed unnecessary comments and some other code cleanup

* Deleting dotnet files before redownloading them

* - made changes in the PR
- Moved extensioncode to utils.test for better reusability

* added some 'should' messages
This commit is contained in:
Aasim Khan
2020-07-10 15:34:44 -07:00
committed by GitHub
parent 30e8edd875
commit df8f5ae3a6
13 changed files with 820 additions and 48 deletions

View File

@@ -10,16 +10,89 @@ import * as constants from '../../common/constants';
export class FileConfigPage extends ImportPage {
private serverDropdown: azdata.DropDownComponent;
private databaseDropdown: azdata.DropDownComponent;
private fileTextBox: azdata.InputBoxComponent;
private fileButton: azdata.ButtonComponent;
private tableNameTextBox: azdata.InputBoxComponent;
private schemaDropdown: azdata.DropDownComponent;
private form: azdata.FormContainer;
private _serverDropdown: azdata.DropDownComponent;
private _databaseDropdown: azdata.DropDownComponent;
private _fileTextBox: azdata.InputBoxComponent;
private _fileButton: azdata.ButtonComponent;
private _tableNameTextBox: azdata.InputBoxComponent;
private _schemaDropdown: azdata.DropDownComponent;
private _form: azdata.FormContainer;
private _databaseLoader: azdata.LoadingComponent;
private _schemaLoader: azdata.LoadingComponent;
public get serverDropdown(): azdata.DropDownComponent {
return this._serverDropdown;
}
public set serverDropdown(serverDropdown: azdata.DropDownComponent) {
this._serverDropdown = serverDropdown;
}
public get databaseDropdown(): azdata.DropDownComponent {
return this._databaseDropdown;
}
public set databaseDropdown(databaseDropdown: azdata.DropDownComponent) {
this._databaseDropdown = databaseDropdown;
}
public get fileTextBox(): azdata.InputBoxComponent {
return this._fileTextBox;
}
public set fileTextBox(fileTextBox: azdata.InputBoxComponent) {
this._fileTextBox = fileTextBox;
}
public get fileButton(): azdata.ButtonComponent {
return this._fileButton;
}
public set fileButton(fileButton: azdata.ButtonComponent) {
this._fileButton = fileButton;
}
public get tableNameTextBox(): azdata.InputBoxComponent {
return this._tableNameTextBox;
}
public set tableNameTextBox(tableNameTextBox: azdata.InputBoxComponent) {
this._tableNameTextBox = tableNameTextBox;
}
public get schemaDropdown(): azdata.DropDownComponent {
return this._schemaDropdown;
}
public set schemaDropdown(schemaDropdown: azdata.DropDownComponent) {
this._schemaDropdown = schemaDropdown;
}
public get form(): azdata.FormContainer {
return this._form;
}
public set form(form: azdata.FormContainer) {
this._form = form;
}
public get databaseLoader(): azdata.LoadingComponent {
return this._databaseLoader;
}
public set databaseLoader(databaseLoader: azdata.LoadingComponent) {
this._databaseLoader = databaseLoader;
}
public get schemaLoader(): azdata.LoadingComponent {
return this._schemaLoader;
}
public set schemaLoader(schemaLoader: azdata.LoadingComponent) {
this._schemaLoader = schemaLoader;
}
private databaseLoader: azdata.LoadingComponent;
private schemaLoader: azdata.LoadingComponent;
private tableNames: string[] = [];

View File

@@ -45,10 +45,43 @@ export class ModifyColumnsPage extends ImportPage {
{ name: 'varchar(50)', displayName: 'varchar(50)' },
{ name: 'varchar(MAX)', displayName: 'varchar(MAX)' }
];
private table: azdata.DeclarativeTableComponent;
private loading: azdata.LoadingComponent;
private text: azdata.TextComponent;
private form: azdata.FormContainer;
private _table: azdata.DeclarativeTableComponent;
private _loading: azdata.LoadingComponent;
private _text: azdata.TextComponent;
private _form: azdata.FormContainer;
public get table(): azdata.DeclarativeTableComponent {
return this._table;
}
public set table(table: azdata.DeclarativeTableComponent) {
this._table = table;
}
public get loading(): azdata.LoadingComponent {
return this._loading;
}
public set loading(loading: azdata.LoadingComponent) {
this._loading = loading;
}
public get text(): azdata.TextComponent {
return this._text;
}
public set text(text: azdata.TextComponent) {
this._text = text;
}
public get form(): azdata.FormContainer {
return this._form;
}
public set form(form: azdata.FormContainer) {
this._form = form;
}
private static convertMetadata(column: ColumnMetadata): any[] {
return [column.columnName, column.dataType, false, column.nullable];

View File

@@ -9,12 +9,60 @@ import * as constants from '../../common/constants';
export class ProsePreviewPage extends ImportPage {
private table: azdata.TableComponent;
private loading: azdata.LoadingComponent;
private form: azdata.FormContainer;
private refresh: azdata.ButtonComponent;
private resultTextComponent: azdata.TextComponent;
private isSuccess: boolean;
private _table: azdata.TableComponent;
private _loading: azdata.LoadingComponent;
private _form: azdata.FormContainer;
private _refresh: azdata.ButtonComponent;
private _resultTextComponent: azdata.TextComponent;
private _isSuccess: boolean;
public get table(): azdata.TableComponent {
return this._table;
}
public set table(table: azdata.TableComponent) {
this._table = table;
}
public get loading(): azdata.LoadingComponent {
return this._loading;
}
public set loading(loading: azdata.LoadingComponent) {
this._loading = loading;
}
public get form(): azdata.FormContainer {
return this._form;
}
public set form(form: azdata.FormContainer) {
this._form = form;
}
public get refresh(): azdata.ButtonComponent {
return this._refresh;
}
public set refresh(refresh: azdata.ButtonComponent) {
this._refresh = refresh;
}
public get resultTextComponent(): azdata.TextComponent {
return this._resultTextComponent;
}
public set resultTextComponent(resultTextComponent: azdata.TextComponent) {
this._resultTextComponent = resultTextComponent;
}
public get isSuccess(): boolean {
return this._isSuccess;
}
public set isSuccess(isSuccess: boolean) {
this._isSuccess = isSuccess;
}
async start(): Promise<boolean> {
this.table = this.view.modelBuilder.table().withProperties<azdata.TableComponentProperties>({

View File

@@ -10,10 +10,42 @@ import { InsertDataResponse } from '../../services/contracts';
import * as constants from '../../common/constants';
export class SummaryPage extends ImportPage {
private table: azdata.TableComponent;
private statusText: azdata.TextComponent;
private loading: azdata.LoadingComponent;
private form: azdata.FormContainer;
private _table: azdata.TableComponent;
private _statusText: azdata.TextComponent;
private _loading: azdata.LoadingComponent;
private _form: azdata.FormContainer;
public get table(): azdata.TableComponent {
return this._table;
}
public set table(table: azdata.TableComponent) {
this._table = table;
}
public get statusText(): azdata.TextComponent {
return this._statusText;
}
public set statusText(statusText: azdata.TextComponent) {
this._statusText = statusText;
}
public get loading(): azdata.LoadingComponent {
return this._loading;
}
public set loading(loading: azdata.LoadingComponent) {
this._loading = loading;
}
public get form(): azdata.FormContainer {
return this._form;
}
public set form(form: azdata.FormContainer) {
this._form = form;
}
async start(): Promise<boolean> {
this.table = this.view.modelBuilder.table().component();
@@ -101,7 +133,7 @@ export class SummaryPage extends ImportPage {
let updateText: string;
if (!result || !result.result.success) {
updateText = '✗ ';
updateText = constants.summaryErrorSymbol;
if (!result) {
updateText += err;
} else {