{
  "date": "2026-11-04",
  "backend": {
    "tests": 77,
    "failures": 0,
    "errors": 0,
    "skipped": 0
  },
  "suites": [
    {
      "name": "team.lab_edu.security.RestProblemAdviceTest",
      "tests": 1,
      "failures": 0,
      "errors": 0
    },
    {
      "name": "team.lab_edu.AssignmentApiTest",
      "tests": 1,
      "failures": 0,
      "errors": 0
    },
    {
      "name": "team.lab_edu.teaching.MaterialValidatorTest",
      "tests": 2,
      "failures": 0,
      "errors": 0
    },
    {
      "name": "team.lab_edu.teaching.CourseServiceTest",
      "tests": 5,
      "failures": 0,
      "errors": 0
    },
    {
      "name": "team.lab_edu.access.RoleManagementServiceTest",
      "tests": 1,
      "failures": 0,
      "errors": 0
    },
    {
      "name": "team.lab_edu.access.NavigationServiceTest",
      "tests": 1,
      "failures": 0,
      "errors": 0
    },
    {
      "name": "team.lab_edu.teaching.TeachingPolicyTest",
      "tests": 5,
      "failures": 0,
      "errors": 0
    },
    {
      "name": "team.lab_edu.security.AccountPrincipalTest",
      "tests": 1,
      "failures": 0,
      "errors": 0
    },
    {
      "name": "team.lab_edu.BootstrapIntegrationTest",
      "tests": 1,
      "failures": 0,
      "errors": 0
    },
    {
      "name": "team.lab_edu.account.PasswordServiceTest",
      "tests": 1,
      "failures": 0,
      "errors": 0
    },
    {
      "name": "team.lab_edu.ReportApiTest",
      "tests": 1,
      "failures": 0,
      "errors": 0
    },
    {
      "name": "team.lab_edu.security.SessionPolicyFilterTest",
      "tests": 4,
      "failures": 0,
      "errors": 0
    },
    {
      "name": "team.lab_edu.account.AdminQueryServiceTest",
      "tests": 1,
      "failures": 0,
      "errors": 0
    },
    {
      "name": "team.lab_edu.MenuManagementApiTest",
      "tests": 1,
      "failures": 0,
      "errors": 0
    },
    {
      "name": "team.lab_edu.UserManagementApiTest",
      "tests": 4,
      "failures": 0,
      "errors": 0
    },
    {
      "name": "team.lab_edu.access.PermissionCatalogTest",
      "tests": 1,
      "failures": 0,
      "errors": 0
    },
    {
      "name": "team.lab_edu.governance.GovernanceServiceTest",
      "tests": 2,
      "failures": 0,
      "errors": 0
    },
    {
      "name": "team.lab_edu.account.UserManagementServiceTest",
      "tests": 1,
      "failures": 0,
      "errors": 0
    },
    {
      "name": "team.lab_edu.CourseApiTest",
      "tests": 2,
      "failures": 0,
      "errors": 0
    },
    {
      "name": "team.lab_edu.account.RegistrationServiceTest",
      "tests": 1,
      "failures": 0,
      "errors": 0
    },
    {
      "name": "team.lab_edu.SessionEndpointsTest",
      "tests": 1,
      "failures": 0,
      "errors": 0
    },
    {
      "name": "team.lab_edu.ContractResponseTest",
      "tests": 1,
      "failures": 0,
      "errors": 0
    },
    {
      "name": "team.lab_edu.governance.BootstrapRunnerTest",
      "tests": 1,
      "failures": 0,
      "errors": 0
    },
    {
      "name": "team.lab_edu.AdminReadApiTest",
      "tests": 3,
      "failures": 0,
      "errors": 0
    },
    {
      "name": "team.lab_edu.SessionPolicyTest",
      "tests": 5,
      "failures": 0,
      "errors": 0
    },
    {
      "name": "team.lab_edu.RoleManagementApiTest",
      "tests": 2,
      "failures": 0,
      "errors": 0
    },
    {
      "name": "team.lab_edu.AuthenticationApiTest",
      "tests": 3,
      "failures": 0,
      "errors": 0
    },
    {
      "name": "team.lab_edu.PasswordChangeApiTest",
      "tests": 2,
      "failures": 0,
      "errors": 0
    },
    {
      "name": "team.lab_edu.teaching.AssignmentConfigurationTest",
      "tests": 3,
      "failures": 0,
      "errors": 0
    },
    {
      "name": "team.lab_edu.TeachingBoundaryApiTest",
      "tests": 6,
      "failures": 0,
      "errors": 0
    },
    {
      "name": "team.lab_edu.security.LoginAttemptServiceTest",
      "tests": 2,
      "failures": 0,
      "errors": 0
    },
    {
      "name": "team.lab_edu.SecurityFoundationTest",
      "tests": 1,
      "failures": 0,
      "errors": 0
    },
    {
      "name": "team.lab_edu.ExtendedGovernanceApiTest",
      "tests": 10,
      "failures": 0,
      "errors": 0
    }
  ],
  "browser": {
    "stats": {
      "startTime": "2026-11-04T08:27:13.598Z",
      "duration": 35520.058999999994,
      "expected": 13,
      "skipped": 0,
      "unexpected": 0,
      "flaky": 0
    },
    "scenarios": [
      {
        "title": "启用与禁用独立显示，启用操作员不能重置密码",
        "status": "expected",
        "results": [
          {
            "status": "passed",
            "duration": 1042
          }
        ]
      },
      {
        "title": "重置仅一次显示，两个旧上下文失效，强制和主动改密均真实生效",
        "status": "expected",
        "results": [
          {
            "status": "passed",
            "duration": 3380
          }
        ]
      },
      {
        "title": "分配只读角色撤销两个旧会话，重新登录只能查看",
        "status": "expected",
        "results": [
          {
            "status": "passed",
            "duration": 3368
          }
        ]
      },
      {
        "title": "25 条真实数据分页、三项筛选、只读与账户切换清理",
        "status": "expected",
        "results": [
          {
            "status": "passed",
            "duration": 4890
          }
        ]
      },
      {
        "title": "身份切换后迟到的旧资源响应不能重新展示",
        "status": "expected",
        "results": [
          {
            "status": "passed",
            "duration": 1362
          }
        ]
      },
      {
        "title": "真实自助注册、刷新、双标签页退出、历史页与独立会话",
        "status": "expected",
        "results": [
          {
            "status": "passed",
            "duration": 1437
          }
        ]
      },
      {
        "title": "登录断网、身份超时和退出结果不确定均不展示虚假状态",
        "status": "expected",
        "results": [
          {
            "status": "passed",
            "duration": 744
          }
        ]
      },
      {
        "title": "教师和学生的入口、直接页面及服务端操作均拒绝越权",
        "status": "expected",
        "results": [
          {
            "status": "passed",
            "duration": 1021
          }
        ]
      },
      {
        "title": "菜单展示编辑实时更新导航，不授予权限并保留恢复入口",
        "status": "expected",
        "results": [
          {
            "status": "passed",
            "duration": 6873
          }
        ]
      },
      {
        "title": "创建与配置角色，变更差异确认后撤销真实成员会话",
        "status": "expected",
        "results": [
          {
            "status": "passed",
            "duration": 3386
          }
        ]
      },
      {
        "title": "范围外许可不显示且伪造赋权仍由 core 拒绝",
        "status": "expected",
        "results": [
          {
            "status": "passed",
            "duration": 746
          }
        ]
      },
      {
        "title": "权限提交断网、超时、过期表单不显示成功且不部分更新",
        "status": "expected",
        "results": [
          {
            "status": "passed",
            "duration": 2168
          }
        ]
      },
      {
        "title": "教师课程发布、学生报告与附件、人工评分发布形成闭环",
        "status": "expected",
        "results": [
          {
            "status": "passed",
            "duration": 4565
          }
        ]
      }
    ]
  },
  "frontend": [
    "lint passed",
    "typecheck passed",
    "production build passed"
  ],
  "openapi": {
    "version": "3.1.0",
    "paths": 19,
    "operations": 25,
    "schemas": 24
  },
  "environment": "isolated local PostgreSQL; host JVM and Next production build; no production changes",
  "sourceRevisions": {
    "core": "5eb2e951892f9bef69f4b71827169844bae4f431",
    "web": "30f5d9d6d795549a71eb3be3cc08b98a7c3d0856",
    "infra": "b4c8e61c1738b0f6cbf16ce766339cde14340f6f"
  },
  "contractRevision": "380b0afa0f39a256fdf05d433e79336b0ed122e4"
}
