mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-02-17 02:51:36 -05:00
Finish strict null azurecore (#20619)
* Finish strict null azurecore * one last
This commit is contained in:
@@ -99,13 +99,13 @@ describe('Azure Authentication', function () {
|
|||||||
mockTenant
|
mockTenant
|
||||||
]);
|
]);
|
||||||
});
|
});
|
||||||
azureAuthCodeGrant.setup(x => x.getTokenHelper(mockTenant, provider.settings.ossRdbmsResource, TypeMoq.It.isAny(), TypeMoq.It.isAny(), TypeMoq.It.isAny())).returns(() => {
|
azureAuthCodeGrant.setup(x => x.getTokenHelper(mockTenant, provider.settings.ossRdbmsResource!, TypeMoq.It.isAny(), TypeMoq.It.isAny(), TypeMoq.It.isAny())).returns(() => {
|
||||||
return Promise.resolve({
|
return Promise.resolve({
|
||||||
accessToken: mockAccessToken
|
accessToken: mockAccessToken
|
||||||
} as OAuthTokenResponse);
|
} as OAuthTokenResponse);
|
||||||
});
|
});
|
||||||
|
|
||||||
azureAuthCodeGrant.setup(x => x.refreshToken(mockTenant, provider.settings.ossRdbmsResource, mockRefreshToken)).returns((): Promise<OAuthTokenResponse> => {
|
azureAuthCodeGrant.setup(x => x.refreshToken(mockTenant, provider.settings.ossRdbmsResource!, mockRefreshToken)).returns((): Promise<OAuthTokenResponse> => {
|
||||||
const mockToken: AccessToken = JSON.parse(JSON.stringify(mockAccessToken));
|
const mockToken: AccessToken = JSON.parse(JSON.stringify(mockAccessToken));
|
||||||
delete (mockToken as any).invalidData;
|
delete (mockToken as any).invalidData;
|
||||||
return Promise.resolve({
|
return Promise.resolve({
|
||||||
@@ -113,7 +113,7 @@ describe('Azure Authentication', function () {
|
|||||||
} as OAuthTokenResponse);
|
} as OAuthTokenResponse);
|
||||||
});
|
});
|
||||||
|
|
||||||
azureAuthCodeGrant.setup(x => x.getSavedToken(mockTenant, provider.settings.ossRdbmsResource, mockAccount.key)).returns((): Promise<{ accessToken: AccessToken, refreshToken: RefreshToken, expiresOn: string }> => {
|
azureAuthCodeGrant.setup(x => x.getSavedToken(mockTenant, provider.settings.ossRdbmsResource!, mockAccount.key)).returns((): Promise<{ accessToken: AccessToken, refreshToken: RefreshToken, expiresOn: string }> => {
|
||||||
return Promise.resolve({
|
return Promise.resolve({
|
||||||
accessToken: mockAccessToken,
|
accessToken: mockAccessToken,
|
||||||
refreshToken: mockRefreshToken,
|
refreshToken: mockRefreshToken,
|
||||||
@@ -122,13 +122,13 @@ describe('Azure Authentication', function () {
|
|||||||
});
|
});
|
||||||
|
|
||||||
const securityToken = await azureAuthCodeGrant.object.getAccountSecurityToken(mockAccount, mockTenant.id, AzureResource.OssRdbms);
|
const securityToken = await azureAuthCodeGrant.object.getAccountSecurityToken(mockAccount, mockTenant.id, AzureResource.OssRdbms);
|
||||||
should(securityToken.token).be.equal(mockAccessToken.token, 'Token are not similar');
|
should(securityToken?.token).be.equal(mockAccessToken.token, 'Token are not similar');
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
it('saved token exists and can be reused', async function () {
|
it('saved token exists and can be reused', async function () {
|
||||||
delete (mockAccessToken as any).tokenType;
|
delete (mockAccessToken as any).tokenType;
|
||||||
azureAuthCodeGrant.setup(x => x.getSavedToken(mockTenant, provider.settings.microsoftResource, mockAccount.key)).returns((): Promise<{ accessToken: AccessToken, refreshToken: RefreshToken, expiresOn: string }> => {
|
azureAuthCodeGrant.setup(x => x.getSavedToken(mockTenant, provider.settings.microsoftResource!, mockAccount.key)).returns((): Promise<{ accessToken: AccessToken, refreshToken: RefreshToken, expiresOn: string }> => {
|
||||||
return Promise.resolve({
|
return Promise.resolve({
|
||||||
accessToken: mockAccessToken,
|
accessToken: mockAccessToken,
|
||||||
refreshToken: mockRefreshToken,
|
refreshToken: mockRefreshToken,
|
||||||
@@ -137,21 +137,21 @@ describe('Azure Authentication', function () {
|
|||||||
});
|
});
|
||||||
const securityToken = await azureAuthCodeGrant.object.getAccountSecurityToken(mockAccount, mockTenant.id, AzureResource.MicrosoftResourceManagement);
|
const securityToken = await azureAuthCodeGrant.object.getAccountSecurityToken(mockAccount, mockTenant.id, AzureResource.MicrosoftResourceManagement);
|
||||||
|
|
||||||
should(securityToken.tokenType).be.equal('Bearer', 'tokenType should be bearer on a successful getSecurityToken from cache');
|
should(securityToken?.tokenType).be.equal('Bearer', 'tokenType should be bearer on a successful getSecurityToken from cache');
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
it('saved token had invalid expiration', async function () {
|
it('saved token had invalid expiration', async function () {
|
||||||
delete (mockAccessToken as any).tokenType;
|
delete (mockAccessToken as any).tokenType;
|
||||||
(mockAccessToken as any).invalidData = 'this should not exist on response';
|
(mockAccessToken as any).invalidData = 'this should not exist on response';
|
||||||
azureAuthCodeGrant.setup(x => x.getSavedToken(mockTenant, provider.settings.microsoftResource, mockAccount.key)).returns((): Promise<{ accessToken: AccessToken, refreshToken: RefreshToken, expiresOn: string }> => {
|
azureAuthCodeGrant.setup(x => x.getSavedToken(mockTenant, provider.settings.microsoftResource!, mockAccount.key)).returns((): Promise<{ accessToken: AccessToken, refreshToken: RefreshToken, expiresOn: string }> => {
|
||||||
return Promise.resolve({
|
return Promise.resolve({
|
||||||
accessToken: mockAccessToken,
|
accessToken: mockAccessToken,
|
||||||
refreshToken: mockRefreshToken,
|
refreshToken: mockRefreshToken,
|
||||||
expiresOn: undefined
|
expiresOn: 'invalid'
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
azureAuthCodeGrant.setup(x => x.refreshToken(mockTenant, provider.settings.microsoftResource, mockRefreshToken)).returns((): Promise<OAuthTokenResponse> => {
|
azureAuthCodeGrant.setup(x => x.refreshToken(mockTenant, provider.settings.microsoftResource!, mockRefreshToken)).returns((): Promise<OAuthTokenResponse> => {
|
||||||
const mockToken: AccessToken = JSON.parse(JSON.stringify(mockAccessToken));
|
const mockToken: AccessToken = JSON.parse(JSON.stringify(mockAccessToken));
|
||||||
delete (mockToken as any).invalidData;
|
delete (mockToken as any).invalidData;
|
||||||
return Promise.resolve({
|
return Promise.resolve({
|
||||||
@@ -161,18 +161,18 @@ describe('Azure Authentication', function () {
|
|||||||
const securityToken = await azureAuthCodeGrant.object.getAccountSecurityToken(mockAccount, mockTenant.id, AzureResource.MicrosoftResourceManagement);
|
const securityToken = await azureAuthCodeGrant.object.getAccountSecurityToken(mockAccount, mockTenant.id, AzureResource.MicrosoftResourceManagement);
|
||||||
|
|
||||||
should((securityToken as any).invalidData).be.undefined(); // Ensure its a new one
|
should((securityToken as any).invalidData).be.undefined(); // Ensure its a new one
|
||||||
should(securityToken.tokenType).be.equal('Bearer', 'tokenType should be bearer on a successful getSecurityToken from cache');
|
should(securityToken?.tokenType).be.equal('Bearer', 'tokenType should be bearer on a successful getSecurityToken from cache');
|
||||||
|
|
||||||
azureAuthCodeGrant.verify(x => x.refreshToken(mockTenant, provider.settings.microsoftResource, mockRefreshToken), TypeMoq.Times.once());
|
azureAuthCodeGrant.verify(x => x.refreshToken(mockTenant, provider.settings.microsoftResource!, mockRefreshToken), TypeMoq.Times.once());
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('no saved token', function () {
|
describe('no saved token', function () {
|
||||||
it('no base token', async function () {
|
it('no base token', async function () {
|
||||||
azureAuthCodeGrant.setup(x => x.getSavedToken(mockTenant, provider.settings.microsoftResource, mockAccount.key)).returns((): Promise<{ accessToken: AccessToken, refreshToken: RefreshToken, expiresOn: string }> => {
|
azureAuthCodeGrant.setup(x => x.getSavedToken(mockTenant, provider.settings.microsoftResource!, mockAccount.key)).returns((): Promise<{ accessToken: AccessToken, refreshToken: RefreshToken, expiresOn: string } | undefined> => {
|
||||||
return Promise.resolve(undefined);
|
return Promise.resolve(undefined);
|
||||||
});
|
});
|
||||||
|
|
||||||
azureAuthCodeGrant.setup(x => x.getSavedToken(azureAuthCodeGrant.object.commonTenant, provider.settings.microsoftResource, mockAccount.key)).returns((): Promise<{ accessToken: AccessToken, refreshToken: RefreshToken, expiresOn: string }> => {
|
azureAuthCodeGrant.setup(x => x.getSavedToken(azureAuthCodeGrant.object.commonTenant, provider.settings.microsoftResource!, mockAccount.key)).returns((): Promise<{ accessToken: AccessToken, refreshToken: RefreshToken, expiresOn: string } | undefined> => {
|
||||||
return Promise.resolve(undefined);
|
return Promise.resolve(undefined);
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -180,11 +180,11 @@ describe('Azure Authentication', function () {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it('base token exists', async function () {
|
it('base token exists', async function () {
|
||||||
azureAuthCodeGrant.setup(x => x.getSavedToken(mockTenant, provider.settings.microsoftResource, mockAccount.key)).returns((): Promise<{ accessToken: AccessToken, refreshToken: RefreshToken, expiresOn: string }> => {
|
azureAuthCodeGrant.setup(x => x.getSavedToken(mockTenant, provider.settings.microsoftResource!, mockAccount.key)).returns((): Promise<{ accessToken: AccessToken, refreshToken: RefreshToken, expiresOn: string } | undefined> => {
|
||||||
return Promise.resolve(undefined);
|
return Promise.resolve(undefined);
|
||||||
});
|
});
|
||||||
|
|
||||||
azureAuthCodeGrant.setup(x => x.getSavedToken(azureAuthCodeGrant.object.commonTenant, provider.settings.microsoftResource, mockAccount.key)).returns((): Promise<{ accessToken: AccessToken, refreshToken: RefreshToken, expiresOn: string }> => {
|
azureAuthCodeGrant.setup(x => x.getSavedToken(azureAuthCodeGrant.object.commonTenant, provider.settings.microsoftResource!, mockAccount.key)).returns((): Promise<{ accessToken: AccessToken, refreshToken: RefreshToken, expiresOn: string }> => {
|
||||||
return Promise.resolve({
|
return Promise.resolve({
|
||||||
accessToken: mockAccessToken,
|
accessToken: mockAccessToken,
|
||||||
refreshToken: mockRefreshToken,
|
refreshToken: mockRefreshToken,
|
||||||
@@ -199,8 +199,8 @@ describe('Azure Authentication', function () {
|
|||||||
} as OAuthTokenResponse);
|
} as OAuthTokenResponse);
|
||||||
});
|
});
|
||||||
|
|
||||||
const securityToken: Token = await azureAuthCodeGrant.object.getAccountSecurityToken(mockAccount, mockTenant.id, AzureResource.MicrosoftResourceManagement);
|
const securityToken = await azureAuthCodeGrant.object.getAccountSecurityToken(mockAccount, mockTenant.id, AzureResource.MicrosoftResourceManagement);
|
||||||
should(securityToken.tokenType).be.equal('Bearer', 'tokenType should be bearer on a successful getSecurityToken from cache');
|
should(securityToken?.tokenType).be.equal('Bearer', 'tokenType should be bearer on a successful getSecurityToken from cache');
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -217,18 +217,18 @@ describe('Azure Authentication', function () {
|
|||||||
} as AxiosResponse<any>);
|
} as AxiosResponse<any>);
|
||||||
});
|
});
|
||||||
|
|
||||||
azureAuthCodeGrant.setup(x => x.handleInteractionRequired(mockTenant, provider.settings.microsoftResource)).returns(() => {
|
azureAuthCodeGrant.setup(x => x.handleInteractionRequired(mockTenant, provider.settings.microsoftResource!)).returns(() => {
|
||||||
return Promise.resolve({
|
return Promise.resolve({
|
||||||
accessToken: mockAccessToken
|
accessToken: mockAccessToken
|
||||||
} as OAuthTokenResponse);
|
} as OAuthTokenResponse);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
const result = await azureAuthCodeGrant.object.getToken(mockTenant, provider.settings.microsoftResource, {} as TokenPostData);
|
const result = await azureAuthCodeGrant.object.getToken(mockTenant, provider.settings.microsoftResource!, {} as TokenPostData);
|
||||||
|
|
||||||
azureAuthCodeGrant.verify(x => x.handleInteractionRequired(mockTenant, provider.settings.microsoftResource), TypeMoq.Times.once());
|
azureAuthCodeGrant.verify(x => x.handleInteractionRequired(mockTenant, provider.settings.microsoftResource!), TypeMoq.Times.once());
|
||||||
|
|
||||||
should(result.accessToken).be.deepEqual(mockAccessToken);
|
should(result?.accessToken).be.deepEqual(mockAccessToken);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('unknown error should throw error', async function () {
|
it('unknown error should throw error', async function () {
|
||||||
@@ -240,7 +240,7 @@ describe('Azure Authentication', function () {
|
|||||||
} as AxiosResponse<any>);
|
} as AxiosResponse<any>);
|
||||||
});
|
});
|
||||||
|
|
||||||
await azureAuthCodeGrant.object.getToken(mockTenant, provider.settings.microsoftResource, {} as TokenPostData).should.be.rejected();
|
await azureAuthCodeGrant.object.getToken(mockTenant, provider.settings.microsoftResource!, {} as TokenPostData).should.be.rejected();
|
||||||
});
|
});
|
||||||
|
|
||||||
it('calls getTokenHelper', async function () {
|
it('calls getTokenHelper', async function () {
|
||||||
@@ -254,18 +254,18 @@ describe('Azure Authentication', function () {
|
|||||||
} as AxiosResponse<any>);
|
} as AxiosResponse<any>);
|
||||||
});
|
});
|
||||||
|
|
||||||
azureAuthCodeGrant.setup(x => x.getTokenHelper(mockTenant, provider.settings.microsoftResource, TypeMoq.It.isAny(), TypeMoq.It.isAny(), TypeMoq.It.isAny())).returns(() => {
|
azureAuthCodeGrant.setup(x => x.getTokenHelper(mockTenant, provider.settings.microsoftResource!, TypeMoq.It.isAny(), TypeMoq.It.isAny(), TypeMoq.It.isAny())).returns(() => {
|
||||||
return Promise.resolve({
|
return Promise.resolve({
|
||||||
accessToken: mockAccessToken
|
accessToken: mockAccessToken
|
||||||
} as OAuthTokenResponse);
|
} as OAuthTokenResponse);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
const result = await azureAuthCodeGrant.object.getToken(mockTenant, provider.settings.microsoftResource, {} as TokenPostData);
|
const result = await azureAuthCodeGrant.object.getToken(mockTenant, provider.settings.microsoftResource!, {} as TokenPostData);
|
||||||
|
|
||||||
azureAuthCodeGrant.verify(x => x.getTokenHelper(mockTenant, provider.settings.microsoftResource, TypeMoq.It.isAny(), TypeMoq.It.isAny(), TypeMoq.It.isAny()), TypeMoq.Times.once());
|
azureAuthCodeGrant.verify(x => x.getTokenHelper(mockTenant, provider.settings.microsoftResource!, TypeMoq.It.isAny(), TypeMoq.It.isAny(), TypeMoq.It.isAny()), TypeMoq.Times.once());
|
||||||
|
|
||||||
should(result.accessToken).be.deepEqual(mockAccessToken);
|
should(result?.accessToken).be.deepEqual(mockAccessToken);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ import { AppContext } from '../../appContext';
|
|||||||
import { AzureResourceServiceNames } from '../../azureResource/constants';
|
import { AzureResourceServiceNames } from '../../azureResource/constants';
|
||||||
import settings from '../../account-provider/providerSettings';
|
import settings from '../../account-provider/providerSettings';
|
||||||
import { AzureAccount, azureResource } from 'azurecore';
|
import { AzureAccount, azureResource } from 'azurecore';
|
||||||
|
import { TreeNode } from '../../azureResource/treeNode';
|
||||||
|
|
||||||
// Mock test data
|
// Mock test data
|
||||||
const mockAccount: AzureAccount = {
|
const mockAccount: AzureAccount = {
|
||||||
@@ -107,7 +108,7 @@ describe('AzureResourceResourceTreeNode.info', function (): void {
|
|||||||
resourceService.registerResourceProvider(mockResourceProvider.object);
|
resourceService.registerResourceProvider(mockResourceProvider.object);
|
||||||
resourceService.areResourceProvidersLoaded = true;
|
resourceService.areResourceProvidersLoaded = true;
|
||||||
|
|
||||||
appContext = new AppContext(undefined);
|
appContext = new AppContext(TypeMoq.Mock.ofType<vscode.ExtensionContext>().object);
|
||||||
appContext.registerService(AzureResourceServiceNames.resourceService, resourceService);
|
appContext.registerService(AzureResourceServiceNames.resourceService, resourceService);
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -115,7 +116,7 @@ describe('AzureResourceResourceTreeNode.info', function (): void {
|
|||||||
const resourceTreeNode = new AzureResourceResourceTreeNode({
|
const resourceTreeNode = new AzureResourceResourceTreeNode({
|
||||||
resourceProviderId: mockResourceProviderId,
|
resourceProviderId: mockResourceProviderId,
|
||||||
resourceNode: mockResourceRootNode
|
resourceNode: mockResourceRootNode
|
||||||
}, undefined, appContext);
|
}, TypeMoq.Mock.ofType<TreeNode>().object, appContext);
|
||||||
|
|
||||||
should(resourceTreeNode.nodePathValue).equal(mockResourceRootNode.treeItem.id);
|
should(resourceTreeNode.nodePathValue).equal(mockResourceRootNode.treeItem.id);
|
||||||
|
|
||||||
@@ -147,7 +148,7 @@ describe('AzureResourceResourceTreeNode.getChildren', function (): void {
|
|||||||
resourceService.registerResourceProvider(mockResourceProvider.object);
|
resourceService.registerResourceProvider(mockResourceProvider.object);
|
||||||
resourceService.areResourceProvidersLoaded = true;
|
resourceService.areResourceProvidersLoaded = true;
|
||||||
|
|
||||||
appContext = new AppContext(undefined);
|
appContext = new AppContext(TypeMoq.Mock.ofType<vscode.ExtensionContext>().object);
|
||||||
appContext.registerService(AzureResourceServiceNames.resourceService, resourceService);
|
appContext.registerService(AzureResourceServiceNames.resourceService, resourceService);
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -156,7 +157,7 @@ describe('AzureResourceResourceTreeNode.getChildren', function (): void {
|
|||||||
resourceProviderId: mockResourceProviderId,
|
resourceProviderId: mockResourceProviderId,
|
||||||
resourceNode: mockResourceRootNode
|
resourceNode: mockResourceRootNode
|
||||||
},
|
},
|
||||||
undefined, appContext);
|
TypeMoq.Mock.ofType<TreeNode>().object, appContext);
|
||||||
|
|
||||||
const children = await resourceTreeNode.getChildren();
|
const children = await resourceTreeNode.getChildren();
|
||||||
|
|
||||||
@@ -186,7 +187,7 @@ describe('AzureResourceResourceTreeNode.getChildren', function (): void {
|
|||||||
const resourceTreeNode = new AzureResourceResourceTreeNode({
|
const resourceTreeNode = new AzureResourceResourceTreeNode({
|
||||||
resourceProviderId: mockResourceProviderId,
|
resourceProviderId: mockResourceProviderId,
|
||||||
resourceNode: mockResourceNode1
|
resourceNode: mockResourceNode1
|
||||||
}, undefined, appContext);
|
}, TypeMoq.Mock.ofType<TreeNode>().object, appContext);
|
||||||
|
|
||||||
const children = await resourceTreeNode.getChildren();
|
const children = await resourceTreeNode.getChildren();
|
||||||
|
|
||||||
|
|||||||
@@ -23,8 +23,8 @@ describe('AzureResourceAccountNotSignedInTreeNode.info', function(): void {
|
|||||||
should(treeItem.contextValue).equal(AzureResourceItemType.message);
|
should(treeItem.contextValue).equal(AzureResourceItemType.message);
|
||||||
should(treeItem.collapsibleState).equal(vscode.TreeItemCollapsibleState.None);
|
should(treeItem.collapsibleState).equal(vscode.TreeItemCollapsibleState.None);
|
||||||
should(treeItem.command).not.undefined();
|
should(treeItem.command).not.undefined();
|
||||||
should(treeItem.command.title).equal(label);
|
should(treeItem.command?.title).equal(label);
|
||||||
should(treeItem.command.command).equal('azure.resource.signin');
|
should(treeItem.command?.command).equal('azure.resource.signin');
|
||||||
|
|
||||||
const nodeInfo = treeNode.getNodeInfo();
|
const nodeInfo = treeNode.getNodeInfo();
|
||||||
should(nodeInfo.isLeaf).true();
|
should(nodeInfo.isLeaf).true();
|
||||||
|
|||||||
@@ -141,7 +141,7 @@ describe('AzureResourceAccountTreeNode.info', function (): void {
|
|||||||
|
|
||||||
it('Should be correct when there are subscriptions listed.', async function (): Promise<void> {
|
it('Should be correct when there are subscriptions listed.', async function (): Promise<void> {
|
||||||
mockSubscriptionService.setup((o) => o.getSubscriptions(mockAccount, TypeMoq.It.isAny())).returns(() => Promise.resolve(mockSubscriptions));
|
mockSubscriptionService.setup((o) => o.getSubscriptions(mockAccount, TypeMoq.It.isAny())).returns(() => Promise.resolve(mockSubscriptions));
|
||||||
mockSubscriptionFilterService.setup((o) => o.getSelectedSubscriptions(mockAccount)).returns(() => Promise.resolve(undefined));
|
mockSubscriptionFilterService.setup((o) => o.getSelectedSubscriptions(mockAccount)).returns(() => Promise.resolve([]));
|
||||||
sinon.stub(azdata.accounts, 'getAccountSecurityToken').resolves(mockToken);
|
sinon.stub(azdata.accounts, 'getAccountSecurityToken').resolves(mockToken);
|
||||||
|
|
||||||
const accountTreeNodeLabel = `${mockAccount.displayInfo.displayName} (${mockSubscriptions.length} / ${mockSubscriptions.length} subscriptions)`;
|
const accountTreeNodeLabel = `${mockAccount.displayInfo.displayName} (${mockSubscriptions.length} / ${mockSubscriptions.length} subscriptions)`;
|
||||||
@@ -265,7 +265,7 @@ describe('AzureResourceAccountTreeNode.getChildren', function (): void {
|
|||||||
|
|
||||||
it('Should load subscriptions from cache when it is not clearing cache.', async function (): Promise<void> {
|
it('Should load subscriptions from cache when it is not clearing cache.', async function (): Promise<void> {
|
||||||
mockSubscriptionService.setup((o) => o.getSubscriptions(mockAccount, TypeMoq.It.isAny())).returns(() => Promise.resolve(mockSubscriptions));
|
mockSubscriptionService.setup((o) => o.getSubscriptions(mockAccount, TypeMoq.It.isAny())).returns(() => Promise.resolve(mockSubscriptions));
|
||||||
mockSubscriptionFilterService.setup((o) => o.getSelectedSubscriptions(mockAccount)).returns(() => Promise.resolve(undefined));
|
mockSubscriptionFilterService.setup((o) => o.getSelectedSubscriptions(mockAccount)).returns(() => Promise.resolve([]));
|
||||||
|
|
||||||
const accountTreeNode = new AzureResourceAccountTreeNode(mockAccount, mockAppContext, mockTreeChangeHandler.object);
|
const accountTreeNode = new AzureResourceAccountTreeNode(mockAccount, mockAppContext, mockTreeChangeHandler.object);
|
||||||
|
|
||||||
|
|||||||
@@ -17,7 +17,8 @@ import { AzureResourceService } from '../../../azureResource/resourceService';
|
|||||||
import { AzureResourceResourceTreeNode } from '../../../azureResource/resourceTreeNode';
|
import { AzureResourceResourceTreeNode } from '../../../azureResource/resourceTreeNode';
|
||||||
import { IAzureResourceCacheService } from '../../../azureResource/interfaces';
|
import { IAzureResourceCacheService } from '../../../azureResource/interfaces';
|
||||||
import { generateGuid } from '../../../azureResource/utils';
|
import { generateGuid } from '../../../azureResource/utils';
|
||||||
import { AzureAccount, azureResource } from 'azurecore';
|
import { AzureAccount, AzureAccountProperties, azureResource } from 'azurecore';
|
||||||
|
import { TreeNode } from '../../../azureResource/treeNode';
|
||||||
|
|
||||||
// Mock services
|
// Mock services
|
||||||
let appContext: AppContext;
|
let appContext: AppContext;
|
||||||
@@ -39,7 +40,7 @@ const mockAccount: AzureAccount = {
|
|||||||
contextualDisplayName: 'test',
|
contextualDisplayName: 'test',
|
||||||
userId: 'test@email.com'
|
userId: 'test@email.com'
|
||||||
},
|
},
|
||||||
properties: undefined,
|
properties: TypeMoq.Mock.ofType<AzureAccountProperties>().object,
|
||||||
isStale: false
|
isStale: false
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -95,7 +96,7 @@ describe('AzureResourceSubscriptionTreeNode.info', function(): void {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it('Should be correct when created.', async function(): Promise<void> {
|
it('Should be correct when created.', async function(): Promise<void> {
|
||||||
const subscriptionTreeNode = new AzureResourceSubscriptionTreeNode(mockAccount, mockSubscription, mockTenantId, appContext, mockTreeChangeHandler.object, undefined);
|
const subscriptionTreeNode = new AzureResourceSubscriptionTreeNode(mockAccount, mockSubscription, mockTenantId, appContext, mockTreeChangeHandler.object, TypeMoq.Mock.ofType<TreeNode>().object);
|
||||||
|
|
||||||
should(subscriptionTreeNode.nodePathValue).equal(`account_${mockAccount.key.accountId}.subscription_${mockSubscription.id}.tenant_${mockTenantId}`);
|
should(subscriptionTreeNode.nodePathValue).equal(`account_${mockAccount.key.accountId}.subscription_${mockSubscription.id}.tenant_${mockTenantId}`);
|
||||||
|
|
||||||
@@ -148,7 +149,7 @@ describe('AzureResourceSubscriptionTreeNode.getChildren', function(): void {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it('Should return resource containers.', async function(): Promise<void> {
|
it('Should return resource containers.', async function(): Promise<void> {
|
||||||
const subscriptionTreeNode = new AzureResourceSubscriptionTreeNode(mockAccount, mockSubscription, mockTenantId, appContext, mockTreeChangeHandler.object, undefined);
|
const subscriptionTreeNode = new AzureResourceSubscriptionTreeNode(mockAccount, mockSubscription, mockTenantId, appContext, mockTreeChangeHandler.object, TypeMoq.Mock.ofType<TreeNode>().object);
|
||||||
const children = await subscriptionTreeNode.getChildren();
|
const children = await subscriptionTreeNode.getChildren();
|
||||||
|
|
||||||
mockResourceTreeDataProvider1.verify((o) => o.getRootChildren(), TypeMoq.Times.once());
|
mockResourceTreeDataProvider1.verify((o) => o.getRootChildren(), TypeMoq.Times.once());
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ import { AzureResourceAccountTreeNode } from '../../../azureResource/tree/accoun
|
|||||||
import { AzureResourceAccountNotSignedInTreeNode } from '../../../azureResource/tree/accountNotSignedInTreeNode';
|
import { AzureResourceAccountNotSignedInTreeNode } from '../../../azureResource/tree/accountNotSignedInTreeNode';
|
||||||
import { AzureResourceServiceNames } from '../../../azureResource/constants';
|
import { AzureResourceServiceNames } from '../../../azureResource/constants';
|
||||||
import { generateGuid } from '../../../azureResource/utils';
|
import { generateGuid } from '../../../azureResource/utils';
|
||||||
import { AzureAccount } from 'azurecore';
|
import { AzureAccount, AzureAccountProperties } from 'azurecore';
|
||||||
|
|
||||||
// Mock services
|
// Mock services
|
||||||
let mockAppContext: AppContext;
|
let mockAppContext: AppContext;
|
||||||
@@ -37,7 +37,7 @@ const mockAccount1: AzureAccount = {
|
|||||||
contextualDisplayName: 'test',
|
contextualDisplayName: 'test',
|
||||||
userId: 'test@email.com'
|
userId: 'test@email.com'
|
||||||
},
|
},
|
||||||
properties: undefined,
|
properties: TypeMoq.Mock.ofType<AzureAccountProperties>().object,
|
||||||
isStale: false
|
isStale: false
|
||||||
};
|
};
|
||||||
const mockAccount2: AzureAccount = {
|
const mockAccount2: AzureAccount = {
|
||||||
@@ -51,7 +51,7 @@ const mockAccount2: AzureAccount = {
|
|||||||
contextualDisplayName: 'test',
|
contextualDisplayName: 'test',
|
||||||
userId: 'test@email.com'
|
userId: 'test@email.com'
|
||||||
},
|
},
|
||||||
properties: undefined,
|
properties: TypeMoq.Mock.ofType<AzureAccountProperties>().object,
|
||||||
isStale: false
|
isStale: false
|
||||||
};
|
};
|
||||||
const mockAccounts = [mockAccount1, mockAccount2];
|
const mockAccounts = [mockAccount1, mockAccount2];
|
||||||
@@ -94,7 +94,7 @@ describe('AzureResourceTreeProvider.getChildren', function (): void {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it('Should handle when there is no accounts.', async function (): Promise<void> {
|
it('Should handle when there is no accounts.', async function (): Promise<void> {
|
||||||
sinon.stub(azdata.accounts, 'getAllAccounts').returns(Promise.resolve(undefined));
|
sinon.stub(azdata.accounts, 'getAllAccounts').returns(Promise.resolve([]));
|
||||||
|
|
||||||
const treeProvider = new AzureResourceTreeProvider(mockAppContext);
|
const treeProvider = new AzureResourceTreeProvider(mockAppContext);
|
||||||
treeProvider.isSystemInitialized = true;
|
treeProvider.isSystemInitialized = true;
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ import * as azdata from 'azdata';
|
|||||||
* Mock CredentialsProvider to be used for testing
|
* Mock CredentialsProvider to be used for testing
|
||||||
*/
|
*/
|
||||||
export class CredentialsTestProvider implements azdata.CredentialProvider {
|
export class CredentialsTestProvider implements azdata.CredentialProvider {
|
||||||
handle: number;
|
handle: number = 0;
|
||||||
|
|
||||||
public storedCredentials: { [K: string]: azdata.Credential } = {};
|
public storedCredentials: { [K: string]: azdata.Credential } = {};
|
||||||
|
|
||||||
|
|||||||
@@ -2,12 +2,10 @@
|
|||||||
"extends": "../tsconfig.base.json",
|
"extends": "../tsconfig.base.json",
|
||||||
"compilerOptions": {
|
"compilerOptions": {
|
||||||
"outDir": "./out",
|
"outDir": "./out",
|
||||||
"strict": true,
|
|
||||||
"noUnusedParameters": false,
|
"noUnusedParameters": false,
|
||||||
"typeRoots": [
|
"typeRoots": [
|
||||||
"./node_modules/@types"
|
"./node_modules/@types"
|
||||||
],
|
],
|
||||||
"strictNullChecks": false
|
|
||||||
},
|
},
|
||||||
"include": [
|
"include": [
|
||||||
"src/**/*"
|
"src/**/*"
|
||||||
|
|||||||
Reference in New Issue
Block a user