Skip to content

Commit 1c55cd9

Browse files
committed
adapt existing telemetry tests
1 parent 50eed10 commit 1c55cd9

File tree

1 file changed

+40
-14
lines changed

1 file changed

+40
-14
lines changed

test/telemetry/test_telemetry.cpp

Lines changed: 40 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -191,11 +191,16 @@ TELEMETRY_IMPLEMENTATION_TEST("Tracer telemetry lifecycle") {
191191
product.name = Product::Name::tracing;
192192
product.enabled = true;
193193
product.version = tracer_version;
194-
product.configurations = std::unordered_map<ConfigName, ConfigMetadata>{
195-
{ConfigName::SERVICE_NAME,
196-
ConfigMetadata(ConfigName::SERVICE_NAME, "foo",
197-
ConfigMetadata::Origin::CODE)},
198-
};
194+
product.configurations =
195+
std::unordered_map<ConfigName, std::vector<ConfigMetadata>>{
196+
{ConfigName::SERVICE_NAME,
197+
{ConfigMetadata(ConfigName::SERVICE_NAME, "default-service",
198+
ConfigMetadata::Origin::DEFAULT),
199+
ConfigMetadata(ConfigName::SERVICE_NAME, "code-service",
200+
ConfigMetadata::Origin::CODE),
201+
ConfigMetadata(ConfigName::SERVICE_NAME, "env-service",
202+
ConfigMetadata::Origin::ENVIRONMENT_VARIABLE)}},
203+
};
199204

200205
Configuration cfg;
201206
cfg.products.emplace_back(std::move(product));
@@ -218,18 +223,38 @@ TELEMETRY_IMPLEMENTATION_TEST("Tracer telemetry lifecycle") {
218223

219224
auto cfg_payload = app_started_payload["payload"]["configuration"];
220225
REQUIRE(cfg_payload.is_array());
221-
REQUIRE(cfg_payload.size() == 1);
226+
REQUIRE(cfg_payload.size() == 3);
222227

228+
// Each configuration source is sent with an incrementing seq_id
223229
// clang-format off
224-
const auto expected_conf = nlohmann::json({
225-
{"name", "service"},
226-
{"value", "foo"},
227-
{"seq_id", 1},
228-
{"origin", "code"},
229-
});
230+
const std::unordered_map<std::string, nlohmann::json> expected_configs{
231+
{"default-service", nlohmann::json({
232+
{"name", "service"},
233+
{"value", "default-service"},
234+
{"seq_id", 1},
235+
{"origin", "default"},
236+
})},
237+
{"code-service", nlohmann::json({
238+
{"name", "service"},
239+
{"value", "code-service"},
240+
{"seq_id", 2},
241+
{"origin", "code"},
242+
})},
243+
{"env-service", nlohmann::json({
244+
{"name", "service"},
245+
{"value", "env-service"},
246+
{"seq_id", 3},
247+
{"origin", "env_var"},
248+
})},
249+
};
230250
// clang-format on
231251

232-
CHECK(cfg_payload[0] == expected_conf);
252+
// Verify all three configuration sources are present
253+
for (const auto& conf : cfg_payload) {
254+
auto value = conf["value"].get<std::string>();
255+
REQUIRE(expected_configs.count(value) == 1);
256+
CHECK(conf == expected_configs.at(value));
257+
}
233258

234259
SECTION("generates a configuration change event") {
235260
SECTION("empty configuration do not generate a valid payload") {
@@ -268,7 +293,8 @@ TELEMETRY_IMPLEMENTATION_TEST("Tracer telemetry lifecycle") {
268293
nlohmann::json{
269294
{"name", "service"},
270295
{"value", "increase seq_id"},
271-
{"seq_id", 2},
296+
{"seq_id",
297+
4}, // seq_id 4 (after DEFAULT=1, CODE=2, ENV=3)
272298
{"origin", "env_var"},
273299
},
274300
},

0 commit comments

Comments
 (0)