feat(web): migrate course adjustment workflow

This commit is contained in:
biss committed 2026-10-02 18:55:34 +08:00
1 parent b0943bb5f8
commit 522c16bb80
8 files changed
+209 -1

No files matched your search

@@ -6,11 +6,46 @@ using Jiaowu.Api.Infrastructure.Persistence;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Data.Sqlite;
using Microsoft.EntityFrameworkCore;
using System.Text.Json;
namespace Jiaowu.Api.Tests;
public sealed class CourseAdjustmentsControllerTests
{
[Fact]
public async Task TeacherOptions_ReturnOnlyActiveNonArchivedTeachers()
{
await using var fixture = await Fixture.CreateAsync();
var collegeId = await fixture.Db.Courses.Select(x => x.CollegeId).SingleAsync();
fixture.Db.Teachers.AddRange(
new Teacher
{
TeacherNumber = "T002",
Name = "离职教师",
CollegeId = collegeId,
Status = TeacherStatus.Retired
},
new Teacher
{
TeacherNumber = "T003",
Name = "归档教师",
CollegeId = collegeId,
IsArchived = true
});
await fixture.Db.SaveChangesAsync();
var controller = new CourseAdjustmentsController(
fixture.Db,
new TestScope(fixture.TeacherUserId, DataScope.Self, SystemRoles.Teacher));
var result = await controller.GetTeacherOptions(CancellationToken.None);
var ok = Assert.IsType<OkObjectResult>(result);
var json = JsonSerializer.Serialize(ok.Value);
Assert.Contains("T001", json);
Assert.DoesNotContain("T002", json);
Assert.DoesNotContain("T003", json);
}
[Fact]
public async Task Reschedule_MovesOnlyTheSelectedOccurrence()
{