mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-01-13 17:22:15 -05:00
Add check OE node tests (#4273)
* Added verify OE child nodes tests for sandalone and BDC instance * msg changes * Added standalone OE node test * Resolved PR comments * Change env name * Added scripts to set env for integration test
This commit is contained in:
@@ -8,17 +8,36 @@
|
|||||||
import 'mocha';
|
import 'mocha';
|
||||||
import * as azdata from 'azdata';
|
import * as azdata from 'azdata';
|
||||||
import { context } from './testContext';
|
import { context } from './testContext';
|
||||||
import { getDefaultTestingServer } from './testConfig';
|
import { getDefaultTestingServer, getBdcServer, TestServerProfile } from './testConfig';
|
||||||
import { connectToServer } from './utils';
|
import { connectToServer } from './utils';
|
||||||
import assert = require('assert');
|
import assert = require('assert');
|
||||||
|
|
||||||
if (context.RunTest) {
|
if (context.RunTest) {
|
||||||
suite('Object Explorer integration test suite', () => {
|
suite('Object Explorer integration suite', () => {
|
||||||
|
test('BDC instance node label test', async function () {
|
||||||
|
assert(process.env.BDC_BACKEND_HOSTNAME !== undefined &&
|
||||||
|
process.env.BDC_BACKEND_USERNAME !== undefined &&
|
||||||
|
process.env.BDC_BACKEND_PWD !== undefined, 'BDC_BACKEND_HOSTNAME, BDC_BACKEND_USERNAME, BDC_BACKEND_PWD must be set using ./scripts/setbackenvariables.sh or .\\scripts\\setbackendvaraibles.bat');
|
||||||
|
const expectedNodeLabel = ['Databases', 'Security', 'Server Objects', 'Data Services'];
|
||||||
|
let server = await getBdcServer();
|
||||||
|
await VerifyOeNode(server, 6000, expectedNodeLabel);
|
||||||
|
});
|
||||||
|
test('Standard alone instance node label test', async function () {
|
||||||
|
const expectedNodeLabel = ['Databases', 'Security', 'Server Objects'];
|
||||||
|
let server = await getDefaultTestingServer();
|
||||||
|
await VerifyOeNode(server, 3000, expectedNodeLabel);
|
||||||
|
});
|
||||||
test('context menu test', async function () {
|
test('context menu test', async function () {
|
||||||
await connectToServer(await getDefaultTestingServer());
|
let server = await getDefaultTestingServer();
|
||||||
|
await connectToServer(server, 3000);
|
||||||
let nodes = <azdata.objectexplorer.ObjectExplorerNode[]>await azdata.objectexplorer.getActiveConnectionNodes();
|
let nodes = <azdata.objectexplorer.ObjectExplorerNode[]>await azdata.objectexplorer.getActiveConnectionNodes();
|
||||||
assert(nodes.length === 1, `expecting 1 active connection, actual: ${nodes.length}`);
|
assert(nodes.length > 0, `Expecting at least one active connection, actual: ${nodes.length}`);
|
||||||
let actions = await azdata.objectexplorer.getNodeActions(nodes[0].connectionId, nodes[0].nodePath);
|
|
||||||
|
let index = nodes.findIndex(node => node.nodePath.includes(server.serverName));
|
||||||
|
assert(index !== -1, `Failed to find server: "${server.serverName}" in OE tree`);
|
||||||
|
|
||||||
|
let node = nodes[index];
|
||||||
|
let actions = await azdata.objectexplorer.getNodeActions(node.connectionId, node.nodePath);
|
||||||
const expectedActions = ['Manage', 'New Query', 'Disconnect', 'Delete Connection', 'Refresh', 'New Notebook', 'Launch Profiler'];
|
const expectedActions = ['Manage', 'New Query', 'Disconnect', 'Delete Connection', 'Refresh', 'New Notebook', 'Launch Profiler'];
|
||||||
|
|
||||||
const expectedString = expectedActions.join(',');
|
const expectedString = expectedActions.join(',');
|
||||||
@@ -27,3 +46,18 @@ if (context.RunTest) {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
async function VerifyOeNode(server: TestServerProfile, timeout: number,expectedNodeLable: string[]) {
|
||||||
|
await connectToServer(server, timeout);
|
||||||
|
let nodes = <azdata.objectexplorer.ObjectExplorerNode[]>await azdata.objectexplorer.getActiveConnectionNodes();
|
||||||
|
assert(nodes.length > 0, `Expecting at least one active connection, actual: ${nodes.length}`);
|
||||||
|
|
||||||
|
let index = nodes.findIndex(node => node.nodePath.includes(server.serverName));
|
||||||
|
assert(index !== -1, `Failed to find server: "${server.serverName}" in OE tree`);
|
||||||
|
let actualNodeLable = [];
|
||||||
|
let childeren = await nodes[index].getChildren();
|
||||||
|
assert(childeren.length === expectedNodeLable.length, `Expecting node count: ${expectedNodeLable.length}, Actual: ${childeren.length}`);
|
||||||
|
|
||||||
|
childeren.forEach(c => actualNodeLable.push(c.label));
|
||||||
|
assert(expectedNodeLable.toLocaleString() === actualNodeLable.toLocaleString(), `Expected node label: "$'${expectedNodeLable}", Actual: "${actualNodeLable}"`);
|
||||||
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -66,6 +66,16 @@ var TestingServers: TestServerProfile[] = [
|
|||||||
database: 'master',
|
database: 'master',
|
||||||
provider: ConnectionProvider.SQLServer,
|
provider: ConnectionProvider.SQLServer,
|
||||||
version: '2017'
|
version: '2017'
|
||||||
|
}),
|
||||||
|
new TestServerProfile(
|
||||||
|
{
|
||||||
|
serverName: process.env.BDC_BACKEND_HOSTNAME,
|
||||||
|
userName: process.env.BDC_BACKEND_USERNAME,
|
||||||
|
password: process.env.BDC_BACKEND_PWD,
|
||||||
|
authenticationType: AuthenticationType.SqlLogin,
|
||||||
|
database: 'master',
|
||||||
|
provider: ConnectionProvider.SQLServer,
|
||||||
|
version: '2019'
|
||||||
})
|
})
|
||||||
];
|
];
|
||||||
|
|
||||||
@@ -83,6 +93,11 @@ export async function getDefaultTestingServer(): Promise<TestServerProfile> {
|
|||||||
return servers[0];
|
return servers[0];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export async function getBdcServer(): Promise<TestServerProfile> {
|
||||||
|
let servers = await getTestingServers();
|
||||||
|
return servers.filter(s => s.version === '2019')[0];
|
||||||
|
}
|
||||||
|
|
||||||
export async function getTestingServers(): Promise<TestServerProfile[]> {
|
export async function getTestingServers(): Promise<TestServerProfile[]> {
|
||||||
let promise = new Promise<TestServerProfile[]>(resolve => {
|
let promise = new Promise<TestServerProfile[]>(resolve => {
|
||||||
resolve(TestingServers);
|
resolve(TestingServers);
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ import * as azdata from 'azdata';
|
|||||||
import * as vscode from 'vscode';
|
import * as vscode from 'vscode';
|
||||||
import { TestServerProfile } from './testConfig';
|
import { TestServerProfile } from './testConfig';
|
||||||
|
|
||||||
export async function connectToServer(server: TestServerProfile) {
|
export async function connectToServer(server: TestServerProfile, timeout: number = 3000) {
|
||||||
let connectionProfile: azdata.IConnectionProfile = {
|
let connectionProfile: azdata.IConnectionProfile = {
|
||||||
serverName: server.serverName,
|
serverName: server.serverName,
|
||||||
databaseName: server.database,
|
databaseName: server.database,
|
||||||
@@ -30,9 +30,9 @@ export async function connectToServer(server: TestServerProfile) {
|
|||||||
|
|
||||||
//workaround
|
//workaround
|
||||||
//wait for OE to load
|
//wait for OE to load
|
||||||
await new Promise(c => setTimeout(c, 3000));
|
await new Promise(c => setTimeout(c, timeout));
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function ensureConnectionViewOpened() {
|
export async function ensureConnectionViewOpened() {
|
||||||
await vscode.commands.executeCommand('workbench.view.dataExplorer');
|
await vscode.commands.executeCommand('dataExplorer.servers.focus');
|
||||||
}
|
}
|
||||||
5
scripts/setbackendvariables.cmd
Normal file
5
scripts/setbackendvariables.cmd
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
@echo off pass in username password hostname of big data cluster
|
||||||
|
set BDC_BACKEND_USERNAME=%~1
|
||||||
|
set BDC_BACKEND_PWD=%~2
|
||||||
|
set BDC_BACKEND_HOSTNAME=%~3
|
||||||
|
@echo No problem reading %BDC_BACKEND_HOSTNAME%, password and %BDC_BACKEND_HOSTNAME%
|
||||||
6
scripts/setbackendvariables.sh
Normal file
6
scripts/setbackendvariables.sh
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
# echo pass in username password hostname of big data cluster
|
||||||
|
export BDC_BACKEND_USERNAME=$1
|
||||||
|
export BDC_BACKEND_PWD=$2
|
||||||
|
export BDC_BACKEND_HOSTNAME=$3
|
||||||
|
echo No problem reading $BDC_BACKEND_USERNAME, password and $BDC_BACKEND_HOSTNAME
|
||||||
|
set
|
||||||
@@ -8,7 +8,7 @@ echo %VSCODEUSERDATADIR%
|
|||||||
echo %VSCODEEXTENSIONSDIR%
|
echo %VSCODEEXTENSIONSDIR%
|
||||||
@echo OFF
|
@echo OFF
|
||||||
|
|
||||||
call .\scripts\code.bat --extensionDevelopmentPath=%~dp0\..\extensions\integration-tests --extensionTestsPath=%~dp0\..\extensions\integration-tests\out --user-data-dir=%VSCODEUSERDATADIR% --extensions-dir=%VSCODEEXTENSIONSDIR%
|
call .\scripts\code.bat --extensionDevelopmentPath=%~dp0\..\extensions\integration-tests --extensionTestsPath=%~dp0\..\extensions\integration-tests\out --user-data-dir=%VSCODEUSERDATADIR% --extensions-dir=%VSCODEEXTENSIONSDIR% --remote-debugging-port=9222
|
||||||
|
|
||||||
if %errorlevel% neq 0 exit /b %errorlevel%
|
if %errorlevel% neq 0 exit /b %errorlevel%
|
||||||
|
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ cd $ROOT
|
|||||||
echo $VSCODEUSERDATADIR
|
echo $VSCODEUSERDATADIR
|
||||||
echo $VSCODEEXTDIR
|
echo $VSCODEEXTDIR
|
||||||
|
|
||||||
./scripts/code.sh --extensionDevelopmentPath=$ROOT/extensions/integration-tests --extensionTestsPath=$ROOT/extensions/integration-tests/out --user-data-dir=$VSCODEUSERDATADIR --extensions-dir=$VSCODEEXTDIR
|
./scripts/code.sh --extensionDevelopmentPath=$ROOT/extensions/integration-tests --extensionTestsPath=$ROOT/extensions/integration-tests/out --user-data-dir=$VSCODEUSERDATADIR --extensions-dir=$VSCODEEXTDIR --remote-debugging-port=9222
|
||||||
|
|
||||||
|
|
||||||
rm -r $VSCODEUSERDATADIR
|
rm -r $VSCODEUSERDATADIR
|
||||||
|
|||||||
Reference in New Issue
Block a user