Added config editor in front end
This commit is contained in:
@@ -64,6 +64,25 @@ void TestStateEndpointUsesCallback()
|
||||
ExpectEquals(response.body, "{\"ok\":true}", "state endpoint returns callback JSON");
|
||||
}
|
||||
|
||||
void TestConfigEndpointUsesCallback()
|
||||
{
|
||||
using namespace RenderCadenceCompositor;
|
||||
|
||||
HttpControlServer server;
|
||||
HttpControlServerCallbacks callbacks;
|
||||
callbacks.getConfigJson = []() { return std::string("{\"diskLoaded\":true}"); };
|
||||
server.SetCallbacksForTest(callbacks);
|
||||
|
||||
HttpControlServer::HttpRequest request;
|
||||
request.method = "GET";
|
||||
request.path = "/api/config";
|
||||
|
||||
const HttpControlServer::HttpResponse response = server.RouteRequestForTest(request);
|
||||
ExpectEquals(response.status, "200 OK", "config endpoint succeeds");
|
||||
ExpectEquals(response.contentType, "application/json", "config endpoint is JSON");
|
||||
ExpectEquals(response.body, "{\"diskLoaded\":true}", "config endpoint returns callback JSON");
|
||||
}
|
||||
|
||||
void TestWebSocketAcceptKey()
|
||||
{
|
||||
using namespace RenderCadenceCompositor;
|
||||
@@ -171,6 +190,29 @@ void TestGenericPostCallbackHandlesControlRoutes()
|
||||
Expect(response.body.find("\"ok\":true") != std::string::npos, "generic control callback returns action success");
|
||||
}
|
||||
|
||||
void TestGenericPostCallbackHandlesConfigRoutes()
|
||||
{
|
||||
using namespace RenderCadenceCompositor;
|
||||
|
||||
HttpControlServer server;
|
||||
HttpControlServerCallbacks callbacks;
|
||||
callbacks.executePost = [](const std::string& path, const std::string& body) {
|
||||
ExpectEquals(path, "/api/config/save", "generic callback receives config route path");
|
||||
Expect(body.find("runtimeShaderId") != std::string::npos, "generic callback receives config request body");
|
||||
return ControlActionResult{ true, std::string() };
|
||||
};
|
||||
server.SetCallbacksForTest(callbacks);
|
||||
|
||||
HttpControlServer::HttpRequest request;
|
||||
request.method = "POST";
|
||||
request.path = "/api/config/save";
|
||||
request.body = "{\"runtimeShaderId\":\"solid-color\"}";
|
||||
|
||||
const HttpControlServer::HttpResponse response = server.RouteRequestForTest(request);
|
||||
ExpectEquals(response.status, "200 OK", "config save callback success returns 200");
|
||||
Expect(response.body.find("\"ok\":true") != std::string::npos, "config save callback returns action success");
|
||||
}
|
||||
|
||||
void TestReloadRouteParsesAsControlCommand()
|
||||
{
|
||||
using namespace RenderCadenceCompositor;
|
||||
@@ -199,11 +241,13 @@ int main()
|
||||
{
|
||||
TestParsesHttpRequest();
|
||||
TestStateEndpointUsesCallback();
|
||||
TestConfigEndpointUsesCallback();
|
||||
TestWebSocketAcceptKey();
|
||||
TestRootServesUiIndex();
|
||||
TestKnownPostEndpointReturnsActionError();
|
||||
TestLayerPostEndpointsUseCallbacks();
|
||||
TestGenericPostCallbackHandlesControlRoutes();
|
||||
TestGenericPostCallbackHandlesConfigRoutes();
|
||||
TestReloadRouteParsesAsControlCommand();
|
||||
TestUnknownEndpointReturns404();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user