Skip to content

Commit bbf1938

Browse files
update
1 parent c094801 commit bbf1938

File tree

3 files changed

+15
-11
lines changed

3 files changed

+15
-11
lines changed

src/AzureAppConfigurationImpl.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -594,12 +594,12 @@ export class AzureAppConfigurationImpl implements AzureAppConfiguration {
594594

595595
if (selector.pageEtags === undefined || selector.pageEtags.length === 0) {
596596
selectorCollection.etagToBreakCdnCache = undefined;
597-
return true; // no etag, always refresh
597+
return true; // no etag is retrieved from previous request, always refresh
598598
}
599599

600600
let i = 0;
601601
for await (const page of pageIterator) {
602-
if (i > selector.pageEtags.length + 1 || // new page
602+
if (i >= selector.pageEtags.length || // new page
603603
(page._response.status === 200 && page.etag !== selector.pageEtags[i])) { // page changed
604604
if (this.#isCdnUsed) {
605605
selectorCollection.etagToBreakCdnCache = page.etag;

test/loadBalance.test.ts

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,15 @@ import * as chaiAsPromised from "chai-as-promised";
66
chai.use(chaiAsPromised);
77
const expect = chai.expect;
88
import { load } from "./exportedApi.js";
9-
import { restoreMocks, createMockedConnectionString, sleepInMs, createMockedEndpoint, mockConfigurationManagerGetClients, mockAppConfigurationClientLoadBalanceMode } from "./utils/testHelper.js";
9+
import { restoreMocks, createMockedConnectionString, createMockedKeyValue, sleepInMs, createMockedEndpoint, mockConfigurationManagerGetClients, mockAppConfigurationClientLoadBalanceMode } from "./utils/testHelper.js";
1010
import { AppConfigurationClient } from "@azure/app-configuration";
1111
import { ConfigurationClientWrapper } from "../src/ConfigurationClientWrapper.js";
1212

13+
const mockedKVs = [
14+
{ value: "red", key: "app.settings.fontColor" },
15+
{ value: "40", key: "app.settings.fontSize" },
16+
{ value: "30", key: "app.settings.fontSize", label: "prod" }
17+
].map(createMockedKeyValue);
1318
const fakeEndpoint_1 = createMockedEndpoint("fake_1");
1419
const fakeEndpoint_2 = createMockedEndpoint("fake_2");
1520
const fakeClientWrapper_1 = new ConfigurationClientWrapper(fakeEndpoint_1, new AppConfigurationClient(createMockedConnectionString(fakeEndpoint_1)));
@@ -29,8 +34,8 @@ describe("load balance", function () {
2934

3035
it("should load balance the request when loadBalancingEnabled", async () => {
3136
mockConfigurationManagerGetClients([fakeClientWrapper_1, fakeClientWrapper_2], false);
32-
mockAppConfigurationClientLoadBalanceMode(fakeClientWrapper_1, clientRequestCounter_1);
33-
mockAppConfigurationClientLoadBalanceMode(fakeClientWrapper_2, clientRequestCounter_2);
37+
mockAppConfigurationClientLoadBalanceMode([mockedKVs], fakeClientWrapper_1, clientRequestCounter_1);
38+
mockAppConfigurationClientLoadBalanceMode([mockedKVs], fakeClientWrapper_2, clientRequestCounter_2);
3439

3540
const connectionString = createMockedConnectionString();
3641
const settings = await load(connectionString, {
@@ -66,8 +71,8 @@ describe("load balance", function () {
6671
clientRequestCounter_1.count = 0;
6772
clientRequestCounter_2.count = 0;
6873
mockConfigurationManagerGetClients([fakeClientWrapper_1, fakeClientWrapper_2], false);
69-
mockAppConfigurationClientLoadBalanceMode(fakeClientWrapper_1, clientRequestCounter_1);
70-
mockAppConfigurationClientLoadBalanceMode(fakeClientWrapper_2, clientRequestCounter_2);
74+
mockAppConfigurationClientLoadBalanceMode([mockedKVs], fakeClientWrapper_1, clientRequestCounter_1);
75+
mockAppConfigurationClientLoadBalanceMode([mockedKVs], fakeClientWrapper_2, clientRequestCounter_2);
7176

7277
const connectionString = createMockedConnectionString();
7378
// loadBalancingEnabled is default to false

test/utils/testHelper.ts

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -103,12 +103,11 @@ function mockAppConfigurationClientListConfigurationSettings(pages: Configuratio
103103
});
104104
}
105105

106-
function mockAppConfigurationClientLoadBalanceMode(clientWrapper: ConfigurationClientWrapper, countObject: { count: number }) {
107-
const emptyPages: ConfigurationSetting[][] = [];
106+
function mockAppConfigurationClientLoadBalanceMode(pages: ConfigurationSetting[][], clientWrapper: ConfigurationClientWrapper, countObject: { count: number }) {
108107
sinon.stub(clientWrapper.client, "listConfigurationSettings").callsFake((listOptions) => {
109108
countObject.count += 1;
110-
const kvs = _filterKVs(emptyPages.flat(), listOptions);
111-
return getMockedIterator(emptyPages, kvs, listOptions);
109+
const kvs = _filterKVs(pages.flat(), listOptions);
110+
return getMockedIterator(pages, kvs, listOptions);
112111
});
113112
}
114113

0 commit comments

Comments
 (0)