mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-02-16 18:46:40 -05:00
Add kube config and kube cluster to arc data controller screens (#13551)
This commit is contained in:
66
extensions/arc/src/test/ui/components/filePicker.test.ts
Normal file
66
extensions/arc/src/test/ui/components/filePicker.test.ts
Normal file
@@ -0,0 +1,66 @@
|
||||
/*---------------------------------------------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Licensed under the Source EULA. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
|
||||
import * as azdata from 'azdata';
|
||||
import * as should from 'should';
|
||||
import * as sinon from 'sinon';
|
||||
import * as vscode from 'vscode';
|
||||
import { Deferred } from '../../../common/promise';
|
||||
import { FilePicker } from '../../../ui/components/filePicker';
|
||||
import { createModelViewMock } from '../../stubs';
|
||||
|
||||
let filePicker: FilePicker;
|
||||
const initialPath = '/path/to/.kube/config';
|
||||
const newFilePath = '/path/to/new/.kube/config';
|
||||
let filePathInputBox: azdata.InputBoxComponent;
|
||||
let browseButton: azdata.ButtonComponent;
|
||||
let flexContainer: azdata.FlexContainer;
|
||||
const browseButtonEmitter = new vscode.EventEmitter<undefined>();
|
||||
describe('filePicker', function (): void {
|
||||
beforeEach(async () => {
|
||||
const { mockModelBuilder, mockInputBoxBuilder, mockButtonBuilder, mockFlexBuilder } = createModelViewMock(browseButtonEmitter);
|
||||
filePicker = new FilePicker(mockModelBuilder.object, initialPath, (_disposable) => { });
|
||||
filePathInputBox = mockInputBoxBuilder.object.component();
|
||||
browseButton = mockButtonBuilder.object.component();
|
||||
flexContainer = mockFlexBuilder.object.component();
|
||||
});
|
||||
|
||||
afterEach(() => {
|
||||
sinon.restore();
|
||||
});
|
||||
|
||||
it('browse Button chooses new FilePath', async () => {
|
||||
should(filePathInputBox.value).should.not.be.undefined();
|
||||
filePicker.value!.should.equal(initialPath);
|
||||
flexContainer.items.should.deepEqual([filePathInputBox, browseButton]);
|
||||
const deferred = new Deferred();
|
||||
sinon.stub(vscode.window, 'showOpenDialog').callsFake(async (_options) => {
|
||||
deferred.resolve();
|
||||
return [vscode.Uri.file(newFilePath)];
|
||||
});
|
||||
browseButtonEmitter.fire(undefined); //simulate the click of the browseButton
|
||||
await deferred;
|
||||
filePicker.value!.should.equal(newFilePath);
|
||||
});
|
||||
|
||||
describe('getters and setters', async () => {
|
||||
it('component getter', () => {
|
||||
should(filePicker.component()).equal(flexContainer);
|
||||
});
|
||||
[true, false].forEach(testValue => {
|
||||
it(`Test readOnly with testValue: ${testValue}`, () => {
|
||||
filePicker.readOnly = testValue;
|
||||
filePicker.readOnly!.should.equal(testValue);
|
||||
});
|
||||
it(`Test enabled with testValue: ${testValue}`, () => {
|
||||
filePicker.enabled = testValue;
|
||||
filePicker.enabled!.should.equal(testValue);
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user