MCPcopy Create free account
hub / github.com/FastLED/FastLED / test_json_endpoint

Function test_json_endpoint

examples/Asio/ClientValidation/ClientValidationReal.h:74–122  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

72}
73
74void test_json_endpoint() {
75 FL_WARN("\n=== Test 1: GET /json (Slideshow Data) ===");
76
77 fl::task::Promise<fl::net::http::Response> promise = fl::net::http::fetch_get("http://localhost:8081/json");
78 fl::task::PromiseResult<fl::net::http::Response> result = fl::task::await_top_level(promise);
79
80 if (!result.ok()) {
81 FL_WARN("✗ FAILED: " << result.error_message());
82 tests_failed++;
83 state = FAILED;
84 return;
85 }
86
87 const fl::net::http::Response& resp = result.value();
88 if (resp.status() != 200) {
89 FL_WARN("✗ FAILED: Status " << resp.status() << " " << resp.status_text());
90 tests_failed++;
91 state = FAILED;
92 return;
93 }
94
95 if (!resp.is_json()) {
96 FL_WARN("✗ FAILED: Response is not JSON");
97 tests_failed++;
98 state = FAILED;
99 return;
100 }
101
102 fl::json data = resp.json();
103 fl::string author = data["slideshow"]["author"] | fl::string("unknown");
104 fl::string title = data["slideshow"]["title"] | fl::string("untitled");
105 int slide_count = data["slideshow"]["slides"].size();
106
107 if (author == "unknown" || title == "untitled" || slide_count == 0) {
108 FL_WARN("✗ FAILED: Invalid JSON structure");
109 FL_WARN(" Author: " << author);
110 FL_WARN(" Title: " << title);
111 FL_WARN(" Slides: " << slide_count);
112 tests_failed++;
113 state = FAILED;
114 return;
115 }
116
117 FL_WARN("✓ PASSED");
118 FL_WARN(" Author: " << author);
119 FL_WARN(" Title: " << title);
120 FL_WARN(" Slides: " << slide_count);
121 tests_passed++;
122}
123
124void test_get_endpoint() {
125 FL_WARN("\n=== Test 2: GET /get (Request Echo) ===");

Callers 1

loopFunction · 0.85

Calls 10

fetch_getFunction · 0.85
await_top_levelFunction · 0.85
statusMethod · 0.80
is_jsonMethod · 0.80
stringClass · 0.50
okMethod · 0.45
error_messageMethod · 0.45
valueMethod · 0.45
jsonMethod · 0.45
sizeMethod · 0.45

Tested by

no test coverage detected