fix tests

Signed-off-by: Fredrik Adelöw <freben@gmail.com>
This commit is contained in:
Fredrik Adelöw
2023-10-25 11:26:57 +02:00
parent 62c3f1a120
commit ad7d38c4b6
3 changed files with 31 additions and 50 deletions
@@ -49,6 +49,19 @@ const MockedDefaultAzureCredential = DefaultAzureCredential as jest.MockedClass<
jest.mock('@azure/identity');
describe('DefaultAzureDevOpsCredentialProvider', () => {
const fromAzureDevOpsCredential = jest.spyOn(
CachedAzureDevOpsCredentialsProvider,
'fromAzureDevOpsCredential',
);
const fromTokenCredential = jest.spyOn(
CachedAzureDevOpsCredentialsProvider,
'fromTokenCredential',
);
const fromPersonalAccessTokenCredential = jest.spyOn(
CachedAzureDevOpsCredentialsProvider,
'fromPersonalAccessTokenCredential',
);
const buildProvider = (azureIntegrations: AzureIntegrationConfigLike[]) =>
DefaultAzureDevOpsCredentialsProvider.fromIntegrations(
ScmIntegrations.fromConfig(
@@ -61,8 +74,7 @@ describe('DefaultAzureDevOpsCredentialProvider', () => {
);
beforeEach(() => {
jest.resetAllMocks();
jest.clearAllMocks();
MockedClientSecretCredential.prototype.getToken.mockImplementation(() =>
Promise.resolve({
expiresOnTimestamp: DateTime.local().plus({ days: 1 }).toSeconds(),
@@ -83,18 +95,6 @@ describe('DefaultAzureDevOpsCredentialProvider', () => {
token: 'fake-default-azure-credential-token',
} as AccessToken),
);
jest.spyOn(
CachedAzureDevOpsCredentialsProvider,
'fromAzureDevOpsCredential',
);
jest.spyOn(CachedAzureDevOpsCredentialsProvider, 'fromTokenCredential');
jest.spyOn(
CachedAzureDevOpsCredentialsProvider,
'fromPersonalAccessTokenCredential',
);
});
describe('fromIntegrations', () => {
@@ -111,9 +111,7 @@ describe('DefaultAzureDevOpsCredentialProvider', () => {
]);
expect(provider).toBeDefined();
expect(
CachedAzureDevOpsCredentialsProvider.fromAzureDevOpsCredential,
).toHaveBeenCalledTimes(1);
expect(fromAzureDevOpsCredential).toHaveBeenCalledTimes(1);
});
it('Should create a single credential provider per credential', async () => {
@@ -134,9 +132,7 @@ describe('DefaultAzureDevOpsCredentialProvider', () => {
]);
expect(provider).toBeDefined();
expect(
CachedAzureDevOpsCredentialsProvider.fromAzureDevOpsCredential,
).toHaveBeenCalledTimes(2);
expect(fromAzureDevOpsCredential).toHaveBeenCalledTimes(2);
});
it('Should create a default credential provider for Azure DevOps when no credential is specified', async () => {
@@ -148,13 +144,11 @@ describe('DefaultAzureDevOpsCredentialProvider', () => {
]);
expect(provider).toBeDefined();
expect(
CachedAzureDevOpsCredentialsProvider.fromTokenCredential,
).toHaveBeenCalledTimes(1);
expect(fromTokenCredential).toHaveBeenCalledTimes(1);
expect(
CachedAzureDevOpsCredentialsProvider.fromTokenCredential,
).toHaveBeenCalledWith(new DefaultAzureCredential());
expect(fromTokenCredential).toHaveBeenCalledWith(
new DefaultAzureCredential(),
);
});
it('Should create a default credential provider for Azure DevOps when no default credential is specified', async () => {
@@ -173,13 +167,11 @@ describe('DefaultAzureDevOpsCredentialProvider', () => {
]);
expect(provider).toBeDefined();
expect(
CachedAzureDevOpsCredentialsProvider.fromTokenCredential,
).toHaveBeenCalledTimes(2);
expect(fromTokenCredential).toHaveBeenCalledTimes(2);
expect(
CachedAzureDevOpsCredentialsProvider.fromTokenCredential,
).toHaveBeenCalledWith(new DefaultAzureCredential());
expect(fromTokenCredential).toHaveBeenCalledWith(
new DefaultAzureCredential(),
);
});
it('Should not create a default credential provider for Azure DevOps when another default credential is specified', async () => {
@@ -197,13 +189,11 @@ describe('DefaultAzureDevOpsCredentialProvider', () => {
]);
expect(provider).toBeDefined();
expect(
CachedAzureDevOpsCredentialsProvider.fromTokenCredential,
).toHaveBeenCalledTimes(1);
expect(fromTokenCredential).toHaveBeenCalledTimes(1);
expect(
CachedAzureDevOpsCredentialsProvider.fromTokenCredential,
).toHaveBeenCalledWith(expect.any(ClientSecretCredential));
expect(fromTokenCredential).toHaveBeenCalledWith(
expect.any(ClientSecretCredential),
);
});
it('Should not create a default credential provider for on-premise Azure DevOps server when no credential is specified', async () => {
@@ -215,18 +205,12 @@ describe('DefaultAzureDevOpsCredentialProvider', () => {
]);
expect(provider).toBeDefined();
expect(
CachedAzureDevOpsCredentialsProvider.fromAzureDevOpsCredential,
).toHaveBeenCalledTimes(0);
expect(fromAzureDevOpsCredential).toHaveBeenCalledTimes(0);
// expect 1 call because the Azure integration adds a default integration for dev.azure.com when it is not configured
expect(
CachedAzureDevOpsCredentialsProvider.fromTokenCredential,
).toHaveBeenCalledTimes(1);
expect(fromTokenCredential).toHaveBeenCalledTimes(1);
expect(
CachedAzureDevOpsCredentialsProvider.fromPersonalAccessTokenCredential,
).toHaveBeenCalledTimes(0);
expect(fromPersonalAccessTokenCredential).toHaveBeenCalledTimes(0);
});
});
@@ -123,7 +123,6 @@ describe('KubernetesProxy', () => {
};
beforeEach(() => {
jest.resetAllMocks();
authStrategy = {
getCredential: jest
.fn<
-2
View File
@@ -68,8 +68,6 @@ describe('api', () => {
};
beforeEach(() => {
jest.resetAllMocks();
setupHandlers();
api = new VaultClient({ discoveryApi, fetchApi });