mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-01-13 17:22:15 -05:00
121 lines
4.4 KiB
TypeScript
121 lines
4.4 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 * as should from 'should';
|
|
import 'mocha';
|
|
import { createContext, ParentDialog } from './utils';
|
|
import { AddEditLanguageTab } from '../../../views/externalLanguages/addEditLanguageTab';
|
|
import { LanguageUpdateModel } from '../../../views/externalLanguages/languageViewBase';
|
|
|
|
describe('Add Edit External Languages Tab', () => {
|
|
it('Should create AddEditLanguageTab for new language successfully ', async function (): Promise<void> {
|
|
let testContext = createContext();
|
|
let parent = new ParentDialog(testContext.apiWrapper.object);
|
|
let languageUpdateModel: LanguageUpdateModel = {
|
|
content: parent.createNewContent(),
|
|
language: parent.createNewLanguage(),
|
|
newLang: true
|
|
};
|
|
let tab = new AddEditLanguageTab(testContext.apiWrapper.object, parent, languageUpdateModel);
|
|
should.notEqual(tab.languageView, undefined, 'Failed to create language view for add');
|
|
});
|
|
|
|
it('Should create AddEditLanguageTab for edit successfully ', async function (): Promise<void> {
|
|
let testContext = createContext();
|
|
let parent = new ParentDialog(testContext.apiWrapper.object);
|
|
let languageUpdateModel: LanguageUpdateModel = {
|
|
content: {
|
|
extensionFileName: 'filename',
|
|
isLocalFile: true,
|
|
pathToExtension: 'path',
|
|
},
|
|
language: {
|
|
name: 'name',
|
|
contents: []
|
|
},
|
|
newLang: false
|
|
};
|
|
let tab = new AddEditLanguageTab(testContext.apiWrapper.object, parent, languageUpdateModel);
|
|
should.notEqual(tab.languageView, undefined, 'Failed to create language view for edit');
|
|
should.equal(tab.saveButton, undefined);
|
|
});
|
|
|
|
it('Should reset AddEditLanguageTab successfully ', async function (): Promise<void> {
|
|
let testContext = createContext();
|
|
let parent = new ParentDialog(testContext.apiWrapper.object);
|
|
let languageUpdateModel: LanguageUpdateModel = {
|
|
content: {
|
|
extensionFileName: 'filename',
|
|
isLocalFile: true,
|
|
pathToExtension: 'path',
|
|
},
|
|
language: {
|
|
name: 'name',
|
|
contents: []
|
|
},
|
|
newLang: false
|
|
};
|
|
let tab = new AddEditLanguageTab(testContext.apiWrapper.object, parent, languageUpdateModel);
|
|
if (tab.languageName) {
|
|
tab.languageName.value = 'some value';
|
|
}
|
|
await tab.reset();
|
|
should.equal(tab.languageName?.value, 'name');
|
|
});
|
|
|
|
it('Should load content successfully ', async function (): Promise<void> {
|
|
let testContext = createContext();
|
|
let parent = new ParentDialog(testContext.apiWrapper.object);
|
|
let languageUpdateModel: LanguageUpdateModel = {
|
|
content: {
|
|
extensionFileName: 'filename',
|
|
isLocalFile: true,
|
|
pathToExtension: 'path',
|
|
environmentVariables: 'env vars',
|
|
parameters: 'params'
|
|
},
|
|
language: {
|
|
name: 'name',
|
|
contents: []
|
|
},
|
|
newLang: false
|
|
};
|
|
let tab = new AddEditLanguageTab(testContext.apiWrapper.object, parent, languageUpdateModel);
|
|
let content = tab.languageView?.updatedContent;
|
|
should.notEqual(content, undefined);
|
|
if (content) {
|
|
should.equal(content.extensionFileName, languageUpdateModel.content.extensionFileName);
|
|
should.equal(content.pathToExtension, languageUpdateModel.content.pathToExtension);
|
|
should.equal(content.environmentVariables, languageUpdateModel.content.environmentVariables);
|
|
should.equal(content.parameters, languageUpdateModel.content.parameters);
|
|
}
|
|
});
|
|
|
|
it('Should raise save event if save button clicked ', async function (): Promise<void> {
|
|
let testContext = createContext();
|
|
let parent = new ParentDialog(testContext.apiWrapper.object);
|
|
let languageUpdateModel: LanguageUpdateModel = {
|
|
content: parent.createNewContent(),
|
|
language: parent.createNewLanguage(),
|
|
newLang: true
|
|
};
|
|
let tab = new AddEditLanguageTab(testContext.apiWrapper.object, parent, languageUpdateModel);
|
|
should.notEqual(tab.saveButton, undefined);
|
|
let updateCalled = false;
|
|
let promise = new Promise(resolve => {
|
|
parent.onUpdate(() => {
|
|
updateCalled = true;
|
|
resolve();
|
|
});
|
|
});
|
|
|
|
testContext.onClick.fire(undefined);
|
|
parent.onUpdatedLanguage(languageUpdateModel);
|
|
await promise;
|
|
should.equal(updateCalled, true);
|
|
should.notEqual(tab.updatedData, undefined);
|
|
});
|
|
});
|