|
4 | 4 | import * as chai from "chai";
|
5 | 5 | import * as chaiAsPromised from "chai-as-promised";
|
6 | 6 | 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"; |
8 | 8 | chai.use(chaiAsPromised);
|
9 | 9 | const expect = chai.expect;
|
10 | 10 |
|
@@ -54,6 +54,8 @@ const mockedKVs = [{
|
54 | 54 | createMockedFeatureFlag("Beta", { enabled: true }),
|
55 | 55 | createMockedFeatureFlag("Alpha_1", { enabled: true }),
|
56 | 56 | 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"}) |
57 | 59 | ]);
|
58 | 60 |
|
59 | 61 | describe("feature flags", function () {
|
@@ -158,4 +160,44 @@ describe("feature flags", function () {
|
158 | 160 | expect(variant.telemetry).not.undefined;
|
159 | 161 | });
|
160 | 162 |
|
| 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 | + }); |
161 | 203 | });
|
0 commit comments