using Xunit; using Newtonsoft.Json.Linq; using FluentAssertions; namespace raven_integration { public class ScheduleReads { /// /// Verify the service schedule endpoint returns a well-formed response for a 7-day window /// [Fact] public async Task ServiceSchedule_ReturnsSuccessfully() { var token = await Util.GetTokenAsync("BizAdmin"); var start = DateTime.Today.ToString("o"); var end = DateTime.Today.AddDays(7).ToString("o"); var payload = $$""" {"view":2,"start":"{{start}}","end":"{{end}}","wisuColorSource":2,"tags":[],"dark":false} """; ApiResponse a = await Util.PostAsync("schedule/svc", token, payload); Util.ValidateHTTPStatusCode(a, 200); Util.ValidateDataReturnResponseOk(a); // Verify the response shape — items must be present as a JArray (may be empty if no WOs are scheduled) a.ObjectResponse["data"]["items"].Should().NotBeNull("schedule/svc response data should contain an items key"); a.ObjectResponse["data"]["items"].Should().BeOfType("items should be a JArray"); } /// /// Verify the personal schedule endpoint returns a well-formed response for a 7-day window /// [Fact] public async Task PersonalSchedule_ReturnsSuccessfully() { var token = await Util.GetTokenAsync("BizAdmin"); var start = DateTime.Today.ToString("o"); var end = DateTime.Today.AddDays(7).ToString("o"); var payload = $$""" {"view":2,"start":"{{start}}","end":"{{end}}","wisuColorSource":2,"wisu":false,"reviews":false,"reminders":false,"dark":false,"userId":0} """; ApiResponse a = await Util.PostAsync("schedule/personal", token, payload); Util.ValidateHTTPStatusCode(a, 200); Util.ValidateDataReturnResponseOk(a); } //================================================== }//eoc }//eons