using JobTrackerApi.Controllers; using JobTrackerApi.Data; using JobTrackerApi.Models; using JobTrackerApi.Tests.TestSupport; using Microsoft.AspNetCore.Mvc; using Microsoft.EntityFrameworkCore; using Xunit; namespace JobTrackerApi.Tests; public sealed class CorrespondenceControllerTests { [Fact] public async Task Create_tags_manually_entered_correspondence_with_manual_provider() { await using var db = TestHostFactory.CreateInMemoryDb(); var company = new Company { Name = "Acme", OwnerUserId = "user-1" }; db.Companies.Add(company); await db.SaveChangesAsync(); var job = new JobApplication { JobTitle = "Backend Developer", CompanyId = company.Id, OwnerUserId = "user-1" }; db.JobApplications.Add(job); await db.SaveChangesAsync(); var controller = new CorrespondenceController(db); var request = new CorrespondenceController.CreateCorrespondenceRequestV2( job.Id, "Me", "Called to follow up.", "Follow-up call", "Call", null, "outbound", null, null, null, null, null, null); var result = await controller.Create(request, CancellationToken.None); Assert.IsType(((CreatedAtActionResult)result.Result!).Value); var stored = await db.Correspondences.SingleAsync(); Assert.Equal("manual", stored.Provider); } }