#include "app.h" #include #include #include #include int main() { struct App app = { .dbname = "file::memory:?cache=shared" }; app_startup(&app); // Insert 17 clients using app_create_client for (int i = 1; i <= 17; i++) { char name[32]; snprintf(name, sizeof(name), "client%d", i); struct CreateClientResult cr; create_client(&app, name, &cr); } // Call app_list_clients struct ListClientResult *result = malloc(sizeof(*result) + 16 * sizeof(struct ListClientResultClient)); list_clients(&app, 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; }