Skip to content

Commit f42d3b1

Browse files
committed
update test
1 parent 0905cd9 commit f42d3b1

File tree

2 files changed

+14
-23
lines changed

2 files changed

+14
-23
lines changed

test/failover.test.ts

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import * as chaiAsPromised from "chai-as-promised";
66
chai.use(chaiAsPromised);
77
const expect = chai.expect;
88
import { load } from "./exportedApi";
9-
import { createMockedConnectionString, createMockedFeatureFlag, createMockedKeyValue, mockAppConfigurationClientListConfigurationSettingsWithFailure, mockConfigurationManagerGetClients, restoreMocks } from "./utils/testHelper";
9+
import { createMockedConnectionString, createMockedFeatureFlag, createMockedKeyValue, mockConfigurationManagerGetClients, restoreMocks } from "./utils/testHelper";
1010
import { getValidDomain, isValidEndpoint } from "../src/ConfigurationClientManager";
1111

1212
const mockedKVs = [{
@@ -36,8 +36,7 @@ describe("failover", function () {
3636
it("should failover to replica and load key values from config store", async () => {
3737
const replicaDiscoveryEnabled = true;
3838
const isFailoverable = true;
39-
mockConfigurationManagerGetClients(isFailoverable);
40-
mockAppConfigurationClientListConfigurationSettingsWithFailure(mockedKVs);
39+
mockConfigurationManagerGetClients(isFailoverable, mockedKVs);
4140

4241
const connectionString = createMockedConnectionString();
4342
const settings = await load(connectionString, {
@@ -51,8 +50,7 @@ describe("failover", function () {
5150
it("should failover to replica and load feature flags from config store", async () => {
5251
const replicaDiscoveryEnabled = true;
5352
const isFailoverable = true;
54-
mockConfigurationManagerGetClients(isFailoverable);
55-
mockAppConfigurationClientListConfigurationSettingsWithFailure(mockedFeatureFlags);
53+
mockConfigurationManagerGetClients(isFailoverable, mockedFeatureFlags);
5654

5755
const connectionString = createMockedConnectionString();
5856
const settings = await load(connectionString, {
@@ -72,7 +70,6 @@ describe("failover", function () {
7270
it("should throw error when all clients failed", async () => {
7371
const isFailoverable = false;
7472
mockConfigurationManagerGetClients(isFailoverable);
75-
mockAppConfigurationClientListConfigurationSettingsWithFailure();
7673

7774
const connectionString = createMockedConnectionString();
7875
return expect(load(connectionString)).eventually.rejectedWith("All clients failed to get configuration settings.");

test/utils/testHelper.ts

Lines changed: 11 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
// Licensed under the MIT license.
33

44
import * as sinon from "sinon";
5-
import { AppConfigurationClient, AppConfigurationClientOptions, ConfigurationSetting } from "@azure/app-configuration";
5+
import { AppConfigurationClient, ConfigurationSetting } from "@azure/app-configuration";
66
import { ClientSecretCredential } from "@azure/identity";
77
import { KeyVaultSecret, SecretClient } from "@azure/keyvault-secrets";
88
import * as uuid from "uuid";
@@ -100,22 +100,28 @@ function mockAppConfigurationClientListConfigurationSettings(...pages: Configura
100100
});
101101
}
102102

103-
function mockConfigurationManagerGetClients(isFailoverable: boolean, clientOptions?: AppConfigurationClientOptions) {
103+
function mockConfigurationManagerGetClients(isFailoverable: boolean, ...pages: ConfigurationSetting[][]) {
104104
// Stub the getClients method on the class prototype
105105
sinon.stub(ConfigurationClientManager.prototype, "getClients").callsFake(async () => {
106106
const clients: ConfigurationClientWrapper[] = [];
107107
const fakeEndpoint = createMockedEndpoint("fake");
108-
const fakeStaticClientWrapper = new ConfigurationClientWrapper(fakeEndpoint, new AppConfigurationClient(createMockedConnectionString(fakeEndpoint), clientOptions));
108+
const fakeStaticClientWrapper = new ConfigurationClientWrapper(fakeEndpoint, new AppConfigurationClient(createMockedConnectionString(fakeEndpoint)));
109+
sinon.stub(fakeStaticClientWrapper.client, "listConfigurationSettings").callsFake(() => {
110+
throw new RestError("Internal Server Error", { statusCode: 500 });
111+
});
109112
clients.push(fakeStaticClientWrapper);
110113

111114
if (!isFailoverable) {
112115
return clients;
113116
}
114117

115118
const fakeReplicaEndpoint = createMockedEndpoint("fake-replica");
116-
const fakeDynamicClientWrapper = new ConfigurationClientWrapper(fakeReplicaEndpoint, new AppConfigurationClient(createMockedConnectionString(fakeReplicaEndpoint), clientOptions));
119+
const fakeDynamicClientWrapper = new ConfigurationClientWrapper(fakeReplicaEndpoint, new AppConfigurationClient(createMockedConnectionString(fakeReplicaEndpoint)));
117120
clients.push(fakeDynamicClientWrapper);
118-
121+
sinon.stub(fakeDynamicClientWrapper.client, "listConfigurationSettings").callsFake((listOptions) => {
122+
const kvs = _filterKVs(pages.flat(), listOptions);
123+
return getMockedIterator(pages, kvs, listOptions);
124+
});
119125
return clients;
120126
});
121127
}
@@ -135,17 +141,6 @@ function mockAppConfigurationClientGetConfigurationSetting(kvList) {
135141
});
136142
}
137143

138-
function mockAppConfigurationClientListConfigurationSettingsWithFailure(...pages: ConfigurationSetting[][]) {
139-
const stub = sinon.stub(AppConfigurationClient.prototype, "listConfigurationSettings");
140-
141-
// Configure the stub to throw an error on the first call and return mockedKVs on the second call
142-
stub.onFirstCall().throws(new RestError("Internal Server Error", { statusCode: 500 }));
143-
stub.callsFake((listOptions) => {
144-
const kvs = _filterKVs(pages.flat(), listOptions);
145-
return getMockedIterator(pages, kvs, listOptions);
146-
});
147-
}
148-
149144
// uriValueList: [["<secretUri>", "value"], ...]
150145
function mockSecretClientGetSecret(uriValueList: [string, string][]) {
151146
const dict = new Map();
@@ -235,7 +230,6 @@ export {
235230
sinon,
236231
mockAppConfigurationClientListConfigurationSettings,
237232
mockAppConfigurationClientGetConfigurationSetting,
238-
mockAppConfigurationClientListConfigurationSettingsWithFailure,
239233
mockConfigurationManagerGetClients,
240234
mockSecretClientGetSecret,
241235
restoreMocks,

0 commit comments

Comments
 (0)