Skip to content

Commit 5ce3b1e

Browse files
add testcase
1 parent d6c2e41 commit 5ce3b1e

File tree

1 file changed

+43
-1
lines changed

1 file changed

+43
-1
lines changed

test/featureFlag.test.ts

Lines changed: 43 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
import * as chai from "chai";
55
import * as chaiAsPromised from "chai-as-promised";
66
import { load } from "./exportedApi";
7-
import { createMockedConnectionString, createMockedFeatureFlag, createMockedKeyValue, mockAppConfigurationClientListConfigurationSettings, restoreMocks } from "./utils/testHelper";
7+
import { createMockedConnectionString, createMockedEndpoint, createMockedFeatureFlag, createMockedKeyValue, mockAppConfigurationClientListConfigurationSettings, restoreMocks } from "./utils/testHelper";
88
chai.use(chaiAsPromised);
99
const expect = chai.expect;
1010

@@ -54,6 +54,8 @@ const mockedKVs = [{
5454
createMockedFeatureFlag("Beta", { enabled: true }),
5555
createMockedFeatureFlag("Alpha_1", { enabled: true }),
5656
createMockedFeatureFlag("Alpha_2", { enabled: false }),
57+
createMockedFeatureFlag("Telemetry_1", { enabled: true, telemetry: { enabled: true } }, { etag: "Etag"}),
58+
createMockedFeatureFlag("Telemetry_2", { enabled: true, telemetry: { enabled: true } }, { etag: "Etag", label: "Test"})
5759
]);
5860

5961
describe("feature flags", function () {
@@ -158,4 +160,44 @@ describe("feature flags", function () {
158160
expect(variant.telemetry).not.undefined;
159161
});
160162

163+
it("should populate telemetry metadata", async () => {
164+
const connectionString = createMockedConnectionString();
165+
let settings = await load(connectionString, {
166+
featureFlagOptions: {
167+
enabled: true,
168+
selectors: [
169+
{
170+
keyFilter: "Telemetry_1"
171+
},
172+
{
173+
keyFilter: "Telemetry_2",
174+
labelFilter: "Test"
175+
}
176+
]
177+
}
178+
});
179+
expect(settings).not.undefined;
180+
expect(settings.get("feature_management")).not.undefined;
181+
const featureFlags = settings.get<any>("feature_management").feature_flags;
182+
expect(featureFlags).not.undefined;
183+
expect((featureFlags as []).length).equals(2);
184+
185+
let featureFlag = featureFlags[0];
186+
expect(featureFlag).not.undefined;
187+
expect(featureFlag.id).equals("Telemetry_1");
188+
expect(featureFlag.telemetry).not.undefined;
189+
expect(featureFlag.telemetry.enabled).equals(true);
190+
expect(featureFlag.telemetry.metadata.Etag).equals("Etag");
191+
expect(featureFlag.telemetry.metadata.FeatureFlagId).equals("krkOsu9dVV9huwbQDPR6gkV_2T0buWxOCS-nNsj5-6g");
192+
expect(featureFlag.telemetry.metadata.FeatureFlagReference).equals(`${createMockedEndpoint()}/kv/.appconfig.featureflag/Telemetry_1`);
193+
194+
featureFlag = featureFlags[1];
195+
expect(featureFlag).not.undefined;
196+
expect(featureFlag.id).equals("Telemetry_2");
197+
expect(featureFlag.telemetry).not.undefined;
198+
expect(featureFlag.telemetry.enabled).equals(true);
199+
expect(featureFlag.telemetry.metadata.Etag).equals("Etag");
200+
expect(featureFlag.telemetry.metadata.FeatureFlagId).equals("Rc8Am7HIGDT7HC5Ovs3wKN_aGaaK_Uz1mH2e11gaK0o");
201+
expect(featureFlag.telemetry.metadata.FeatureFlagReference).equals(`${createMockedEndpoint()}/kv/.appconfig.featureflag/Telemetry_2?label=Test`);
202+
});
161203
});

0 commit comments

Comments
 (0)