@@ -110,16 +110,9 @@ TEST_CASE("Tracer telemetry", "[telemetry]") {
110110 CHECK (cfg_payload[0 ] == expected_conf);
111111
112112 SECTION (" generates a configuration change event" ) {
113- SECTION (" empty configuration generate a valid payload" ) {
114- auto config_change_message = nlohmann::json::parse (
115- tracer_telemetry.configuration_change (), nullptr , false );
116- REQUIRE (config_change_message.is_discarded () == false );
117- REQUIRE (is_valid_telemetry_payload (app_started) == true );
118-
119- CHECK (config_change_message[" request_type" ] ==
120- " app-client-configuration-change" );
121- CHECK (config_change_message[" payload" ][" configuration" ].is_array ());
122- CHECK (config_change_message[" payload" ][" configuration" ].empty ());
113+ SECTION (" empty configuration do not generate a valid payload" ) {
114+ auto config_update = tracer_telemetry.configuration_change ();
115+ CHECK (!config_update);
123116 }
124117
125118 SECTION (" valid configurations update" ) {
@@ -130,8 +123,10 @@ TEST_CASE("Tracer telemetry", "[telemetry]") {
130123 Error{Error::Code::OTHER, " empty field" }}};
131124
132125 tracer_telemetry.capture_configuration_change (new_config);
133- auto config_change_message = nlohmann::json::parse (
134- tracer_telemetry.configuration_change (), nullptr , false );
126+ auto updates = tracer_telemetry.configuration_change ();
127+ REQUIRE (updates);
128+ auto config_change_message =
129+ nlohmann::json::parse (*updates, nullptr , false );
135130 REQUIRE (config_change_message.is_discarded () == false );
136131 REQUIRE (is_valid_telemetry_payload (config_change_message) == true );
137132
@@ -141,25 +136,42 @@ TEST_CASE("Tracer telemetry", "[telemetry]") {
141136 CHECK (config_change_message[" payload" ][" configuration" ].size () == 2 );
142137
143138 const std::unordered_map<std::string, nlohmann::json> expected_json{
144- {" service" , nlohmann::json{{" name" , " service" },
145- {" value" , " increase seq_id" },
146- {" seq_id" , 2 },
147- {" origin" , " env_var" }}},
148- {" trace_enabled" ,
149- nlohmann::json{{" name" , " trace_enabled" },
150- {" value" , " " },
151- {" seq_id" , 1 },
152- {" origin" , " default" },
153- {" error" ,
154- {{" code" , Error::Code::OTHER},
155- {" message" , " empty field" }}}}}};
139+ {
140+ " service" ,
141+ nlohmann::json{
142+ {" name" , " service" },
143+ {" value" , " increase seq_id" },
144+ {" seq_id" , 2 },
145+ {" origin" , " env_var" },
146+ },
147+ },
148+ {
149+ " trace_enabled" ,
150+ nlohmann::json{
151+ {" name" , " trace_enabled" },
152+ {" value" , " " },
153+ {" seq_id" , 1 },
154+ {" origin" , " default" },
155+ {
156+ " error" ,
157+ {
158+ {" code" , Error::Code::OTHER},
159+ {" message" , " empty field" },
160+ },
161+ },
162+ },
163+ },
164+ };
156165
157166 for (const auto & conf :
158167 config_change_message[" payload" ][" configuration" ]) {
159168 auto expected_conf = expected_json.find (conf[" name" ]);
160169 REQUIRE (expected_conf != expected_json.cend ());
161170 CHECK (expected_conf->second == conf);
162171 }
172+
173+ // No update -> no configuration update
174+ CHECK (tracer_telemetry.configuration_change () == nullopt );
163175 }
164176 }
165177 }
0 commit comments