Files
azuredatastudio/extensions/arc/src/test/ui/dialogs/connectControllerDialog.test.ts
Charles Gagnon 2bc6a0cd01 VS Code merge to df8fe74bd55313de0dd2303bc47a4aab0ca56b0e (#17979)
* Merge from vscode 504f934659740e9d41501cad9f162b54d7745ad9

* delete unused folders

* distro

* Bump build node version

* update chokidar

* FIx hygiene errors

* distro

* Fix extension lint issues

* Remove strict-vscode

* Add copyright header exemptions

* Bump vscode-extension-telemetry to fix webpacking issue with zone.js

* distro

* Fix failing tests (revert marked.js back to current one until we decide to update)

* Skip searchmodel test

* Fix mac build

* temp debug script loading

* Try disabling coverage

* log error too

* Revert "log error too"

This reverts commit af0183e5d4ab458fdf44b88fbfab9908d090526f.

* Revert "temp debug script loading"

This reverts commit 3d687d541c76db2c5b55626c78ae448d3c25089c.

* Add comments explaining coverage disabling

* Fix ansi_up loading issue

* Merge latest from ads

* Use newer option

* Fix compile

* add debug logging warn

* Always log stack

* log more

* undo debug

* Update to use correct base path (+cleanup)

* distro

* fix compile errors

* Remove strict-vscode

* Fix sql editors not showing

* Show db dropdown input & fix styling

* Fix more info in gallery

* Fix gallery asset requests

* Delete unused workflow

* Fix tapable resolutions for smoke test compile error

* Fix smoke compile

* Disable crash reporting

* Disable interactive

Co-authored-by: ADS Merger <karlb@microsoft.com>
2022-01-06 09:06:56 -08:00

98 lines
6.1 KiB
TypeScript

/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
// import { ControllerInfo } from 'arc';
// import * as should from 'should';
// import * as sinon from 'sinon';
// import { v4 as uuid } from 'uuid';
// import * as loc from '../../../localizedConstants';
// import { ControllerModel } from '../../../models/controllerModel';
// import { ConnectToControllerDialog } from '../../../ui/dialogs/connectControllerDialog';
// describe('ConnectControllerDialog', function (): void {
// afterEach(function (): void {
// sinon.restore();
// });
// (<{ info: ControllerInfo | undefined, description: string }[]>[
// { info: undefined, description: 'all input' },
// { info: { endpoint: '127.0.0.1' }, description: 'all but URL' },
// { info: { endpoint: '127.0.0.1', username: 'sa' }, description: 'all but URL and password' }]).forEach(test => {
// it(`Validate returns false when ${test.description} is empty`, async function (): Promise<void> {
// const connectControllerDialog = new ConnectToControllerDialog(undefined!);
// connectControllerDialog.showDialog(test.info, undefined);
// await connectControllerDialog.isInitialized;
// const validateResult = await connectControllerDialog.validate();
// should(validateResult).be.false();
// });
// });
// it('validate returns false if controller refresh fails', async function (): Promise<void> {
// sinon.stub(ControllerModel.prototype, 'refresh').returns(Promise.reject('Controller refresh failed'));
// const connectControllerDialog = new ConnectToControllerDialog(undefined!);
// const info: ControllerInfo = { id: uuid(), endpoint: 'https://127.0.0.1:30080', kubeConfigFilePath: '/path/to/.kube/config', kubeClusterContext: 'currentCluster', name: 'my-arc', namespace: 'arc-ns', username: 'sa', rememberPassword: true, resources: [] };
// connectControllerDialog.showDialog(info, 'pwd');
// await connectControllerDialog.isInitialized;
// const validateResult = await connectControllerDialog.validate();
// should(validateResult).be.false('Validation should have returned false');
// });
// it('validate replaces http with https', async function (): Promise<void> {
// await validateConnectControllerDialog(
// { id: uuid(), endpoint: 'http://127.0.0.1:30081', kubeConfigFilePath: '/path/to/.kube/config', kubeClusterContext: 'currentCluster', name: 'my-arc', namespace: 'arc-ns', username: 'sa', rememberPassword: true, resources: [] },
// 'https://127.0.0.1:30081');
// });
// it('validate appends https if missing', async function (): Promise<void> {
// await validateConnectControllerDialog({ id: uuid(), endpoint: '127.0.0.1:30080', kubeConfigFilePath: '/path/to/.kube/config', kubeClusterContext: 'currentCluster', name: 'my-arc', namespace: 'arc-ns', username: 'sa', rememberPassword: true, resources: [] },
// 'https://127.0.0.1:30080');
// });
// it('validate appends default port if missing', async function (): Promise<void> {
// await validateConnectControllerDialog({ id: uuid(), endpoint: 'https://127.0.0.1', kubeConfigFilePath: '/path/to/.kube/config', kubeClusterContext: 'currentCluster', name: 'my-arc', namespace: 'arc-ns', username: 'sa', rememberPassword: true, resources: [] },
// 'https://127.0.0.1:30080');
// });
// it('validate appends both port and https if missing', async function (): Promise<void> {
// await validateConnectControllerDialog({ id: uuid(), endpoint: '127.0.0.1', kubeConfigFilePath: '/path/to/.kube/config', kubeClusterContext: 'currentCluster', name: 'my-arc', namespace: 'arc-ns', username: 'sa', rememberPassword: true, resources: [] },
// 'https://127.0.0.1:30080');
// });
// for (const name of ['', undefined]) {
// it.skip(`validate display name gets set to arc instance name for user chosen name of:${name}`, async function (): Promise<void> {
// await validateConnectControllerDialog(
// { id: uuid(), endpoint: 'http://127.0.0.1:30081', kubeConfigFilePath: '/path/to/.kube/config', kubeClusterContext: 'currentCluster', name: name!, namespace: 'arc-ns', username: 'sa', rememberPassword: true, resources: [] },
// 'https://127.0.0.1:30081');
// });
// }
// it.skip(`validate display name gets set to default data controller name for user chosen name of:'' and instanceName in explicably returned as undefined from the controller endpoint`, async function (): Promise<void> {
// await validateConnectControllerDialog(
// { id: uuid(), endpoint: 'http://127.0.0.1:30081', kubeConfigFilePath: '/path/to/.kube/config', kubeClusterContext: 'currentCluster', name: '', namespace: 'arc-ns', username: 'sa', rememberPassword: true, resources: [] },
// 'https://127.0.0.1:30081',
// undefined);
// });
// });
// async function validateConnectControllerDialog(info: ControllerInfo, expectedUrl: string, arcInstanceName: string = 'arc-instance'): Promise<void> {
// const expectedControllerInfoName = info.name || arcInstanceName || loc.defaultControllerName;
// const connectControllerDialog = new ConnectToControllerDialog(undefined!);
// // Stub out refresh calls to controllerModel - we'll test those separately
// sinon.stub(ControllerModel.prototype, 'refresh').returns(Promise.resolve());
// // stub out controller registration response to return a known instanceName for the dc.
// /*
// sinon.stub(ControllerModel.prototype, 'controllerRegistration').get(() => {
// return <Registration>{ instanceName: arcInstanceName };
// });
// */
// connectControllerDialog.showDialog(info, 'pwd');
// await connectControllerDialog.isInitialized;
// const validateResult = await connectControllerDialog.validate();
// should(validateResult).be.true('Validation should have returned true');
// const model = await connectControllerDialog.waitForClose();
// should(model?.controllerModel.info.endpoint).equal(expectedUrl);
// should(model?.controllerModel.info.name).equal(expectedControllerInfoName);
// }