修复教师实验管理页的可见性问题

This commit is contained in:
biss committed 2026-08-18 09:54:03 +08:00
1 parent 0b63d31e67
commit 7db082639c
2 files changed
+37 -4

No files matched your search

@@ -7,11 +7,45 @@ using Jiaowu.Api.Infrastructure.Timetables;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Data.Sqlite;
using Microsoft.EntityFrameworkCore;
using System.Text.Json;
namespace Jiaowu.Api.Tests;
public sealed class ExperimentsControllerTests
{
[Fact]
public async Task TeacherManagement_ListsOwnDraftAndPublishedProjectsWithoutSessionInstructorBinding()
{
await using var fixture = await ExperimentFixture.CreateAsync();
var teacherScope = new FixedScope(new CurrentUserScope(
fixture.ManagerScope.Current.UserId,
fixture.ManagerScope.Current.DisplayName,
fixture.ManagerScope.Current.CollegeId,
DataScope.Self,
new HashSet<string>([SystemRoles.Teacher])));
var controller = fixture.Controller(teacherScope);
Assert.IsType<CreatedResult>(await controller.CreateProject(
fixture.ProjectRequest(ExperimentArrangementMode.SelfScheduled),
CancellationToken.None));
Assert.IsType<CreatedResult>(await controller.CreateProject(
fixture.ProjectRequest(ExperimentArrangementMode.Centralized),
CancellationToken.None));
var centralized = await fixture.Db.ExperimentProjects.SingleAsync(x =>
x.ArrangementMode == ExperimentArrangementMode.Centralized);
Assert.IsType<NoContentResult>(await controller.PublishProject(
centralized.Id, CancellationToken.None));
var result = Assert.IsType<OkObjectResult>(
await controller.GetManagementProjects(
null, null, null, null, null, null, null, null,
CancellationToken.None));
using var response = JsonDocument.Parse(JsonSerializer.Serialize(result.Value));
Assert.Equal(1, response.RootElement.GetProperty("Total").GetInt32());
Assert.Equal(2, response.RootElement.GetProperty("Items").GetArrayLength());
}
[Fact]
public async Task BatchProjects_CreateSameDefinitionForSameCourseTasks()
{