Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
41 changes: 41 additions & 0 deletions src/integration_tests.zig
Original file line number Diff line number Diff line change
Expand Up @@ -485,6 +485,47 @@ test "integration harness covers instance lifecycle endpoints" {
}
}

test "integration harness covers lifecycle error paths" {
{
var server = try IntegrationServer.start(std.testing.allocator);
defer server.deinit();

const start_resp = try server.fetch(.{ .path = "/api/instances/nullboiler/missing/start", .method = .POST });
defer start_resp.deinit(std.testing.allocator);
try std.testing.expectEqual(std.http.Status.not_found, start_resp.status);
try std.testing.expect(std.mem.indexOf(u8, start_resp.body, "not found") != null);

const stop_resp = try server.fetch(.{ .path = "/api/instances/nullboiler/missing/stop", .method = .POST });
defer stop_resp.deinit(std.testing.allocator);
try std.testing.expectEqual(std.http.Status.not_found, stop_resp.status);
try std.testing.expect(std.mem.indexOf(u8, stop_resp.body, "not found") != null);

const restart_resp = try server.fetch(.{ .path = "/api/instances/nullboiler/missing/restart", .method = .POST });
defer restart_resp.deinit(std.testing.allocator);
try std.testing.expectEqual(std.http.Status.not_found, restart_resp.status);
try std.testing.expect(std.mem.indexOf(u8, restart_resp.body, "not found") != null);
}

{
var server = try IntegrationServer.startWithSeed(std.testing.allocator, struct {
fn call(srv: *IntegrationServer) !void {
try seedManagedInstance(srv, "nullboiler", "demo");
}
}.call);
defer server.deinit();

const start_resp = try server.fetch(.{ .path = "/api/instances/nullboiler/demo/start", .method = .POST });
defer start_resp.deinit(std.testing.allocator);
try std.testing.expectEqual(std.http.Status.internal_server_error, start_resp.status);
try std.testing.expect(std.mem.indexOf(u8, start_resp.body, "internal error") != null);

const restart_resp = try server.fetch(.{ .path = "/api/instances/nullboiler/demo/restart", .method = .POST });
defer restart_resp.deinit(std.testing.allocator);
try std.testing.expectEqual(std.http.Status.internal_server_error, restart_resp.status);
try std.testing.expect(std.mem.indexOf(u8, restart_resp.body, "internal error") != null);
}
}

test "integration harness covers orchestration proxy not configured" {
var server = try IntegrationServer.start(std.testing.allocator);
defer server.deinit();
Expand Down
Loading