#include "web.h" #include #include #include #include int main() { struct App app = { .dbname = "file::memory:?cache=shared" }; prepare_database(&app); struct Server server = { .app = &app }; struct Request request = { .server = &server }; // Insert 17 clients using create_client for (int i = 1; i <= 17; i++) { char name[32]; snprintf(name, sizeof(name), "client%d", i); struct CreateClientResult cr; create_client(&request, name, &cr); } // Call list_clients struct ListClientResult *result = malloc(sizeof(*result) + 16 * sizeof(struct ListClientResultClient)); list_clients(&request, result); // Verify: exactly 16 returned, correct order and names assert(result->clients_len == 16); for (int i = 0; i < 16; i++) { assert(result->clients[i].id == i + 1); char expected[32]; snprintf(expected, sizeof(expected), "client%d", i + 1); assert(strcmp(result->clients[i].name, expected) == 0); } free(result); printf("list_clients test passed\n"); return 0; }