35 lines
1.4 KiB
C#
35 lines
1.4 KiB
C#
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).Where(x => x is not null).Select(x => x!).ToHashSet(StringComparer.OrdinalIgnoreCase);
|
|
Assert.Contains("coverLetterText", parameters);
|
|
Assert.Contains("notes", parameters);
|
|
}
|
|
}
|