using System.Reflection; using JobTrackerApi.Controllers; using Xunit; namespace JobTrackerApi.Tests; public sealed class JobApplicationsControllerTests { [Fact] public void Application_package_record_exposes_expected_fields() { var type = typeof(JobApplicationsController).GetNestedType("GenerateApplicationPackageDto", BindingFlags.Public | BindingFlags.NonPublic); Assert.NotNull(type); var props = type!.GetProperties(BindingFlags.Public | BindingFlags.Instance).Select(x => x.Name).ToHashSet(); Assert.Contains("TailoredCvText", props); Assert.Contains("CoverLetterDraft", props); Assert.Contains("ApplicationAnswerDraft", props); Assert.Contains("RecruiterMessageDraft", props); Assert.Contains("KeyPoints", props); } [Fact] public void Save_application_drafts_request_supports_cover_letter_and_notes() { var type = typeof(JobApplicationsController).GetNestedType("SaveApplicationDraftsRequest", BindingFlags.Public | BindingFlags.NonPublic); Assert.NotNull(type); var ctor = type!.GetConstructors().Single(); var parameters = ctor.GetParameters().Select(x => x.Name).ToArray(); Assert.Contains("coverLetterText", parameters); Assert.Contains("notes", parameters); } }