| Suite | Status | Total | Passed | Failed | Errors | Skipped | Duration | Browser |
|---|---|---|---|---|---|---|---|---|
| about | PASSED | 17 | 17 | 0 | 0 | 0 | 22.30s | chromium |
| dashboard | FAILED | 46 | 44 | 1 | 0 | 1 | 12m 36s | chromium |
| logout | PASSED | 6 | 6 | 0 | 0 | 0 | 1m 16s | chromium |
| unit | FAILED | 157 | 154 | 3 | 0 | 0 | 34.87s | chromium |
about| Class | Test | Status | Duration |
|---|---|---|---|
| tests.about.test_RDTNMVPQ_656_about_page | test_656_about_page_loads | PASSED | 5.82s |
| tests.about.test_RDTNMVPQ_656_about_page | test_656_about_page_url_contains_about | PASSED | 1.00s |
| tests.about.test_RDTNMVPQ_656_about_page | test_656_about_mission_section_visible | PASSED | 1.04s |
| tests.about.test_RDTNMVPQ_656_about_page | test_656_about_journey_section_visible | PASSED | 1.00s |
| tests.about.test_RDTNMVPQ_656_about_page | test_656_about_impact_stats_visible | PASSED | 1.04s |
| tests.about.test_RDTNMVPQ_656_about_page | test_656_about_footer_privacy_link_visible | PASSED | 1.07s |
| tests.about.test_RDTNMVPQ_656_about_page | test_656_about_footer_terms_link_visible | PASSED | 1.02s |
| tests.about.test_about | test_about_page_loads | PASSED | 0.98s |
| tests.about.test_about | test_about_page_heading_visible | PASSED | 1.06s |
| tests.about.test_about | test_about_mission_section_visible | PASSED | 1.31s |
| tests.about.test_about | test_about_values_section_visible | PASSED | 1.00s |
| tests.about.test_about | test_about_journey_section_visible | PASSED | 0.95s |
| tests.about.test_about | test_about_partner_schools_stat | PASSED | 0.96s |
| tests.about.test_about | test_about_active_students_stat | PASSED | 1.00s |
| tests.about.test_about | test_about_satisfaction_rate_stat | PASSED | 1.03s |
| tests.about.test_about | test_about_mission_body_text | PASSED | 0.99s |
| tests.about.test_about | test_about_foundation_year_in_timeline | PASSED | 1.01s |
dashboard| Class | Test | Status | Duration |
|---|---|---|---|
| tests.dashboard.test_EI_1196_zero_score_submission_counted_in_dashboard | test_EI_1196_positive_zero_score_submission_counted_in_dashboard | PASSED | 45.77s |
| tests.dashboard.test_EI_1240_teacher_dashboard_classes_count | test_EI_TC_4525_positive_dashboard_classes_count_matches_actual_and_updates_on_add | PASSED | 33.26s |
| tests.dashboard.test_EI_1240_teacher_dashboard_classes_count | test_EI_1240_positive_dashboard_classes_count_updates_on_removal | PASSED | 32.83s |
| tests.dashboard.test_EI_1301_view_class_statistics_e2e | test_EI_TC_2967_positive_teacher_views_class_statistics_with_valid_access | PASSED | 38.94s |
| tests.dashboard.test_EI_1301_view_class_statistics_e2e | test_EI_TC_2968_negative_teacher_without_statistics_permission_is_handled | PASSED | 5.28s |
| tests.dashboard.test_EI_1307_view_teacher_dashboard | test_EI_1307_view_teacher_dashboard | PASSED | 7.41s |
| tests.dashboard.test_EI_1307_view_teacher_dashboard | test_EI_TC_3973_positive_view_teacher_dashboard_happy_path | PASSED | 3.37s |
| tests.dashboard.test_EI_1307_view_teacher_dashboard | test_EI_TC_3975_negative_unauthenticated_user_cannot_view_teacher_dashboard | PASSED | 0.94s |
| tests.dashboard.test_EI_1322_student_view_profile | test_EI_1322_student_view_profile | PASSED | 2.12s |
| tests.dashboard.test_EI_1327_student_progress_displayed | test_EI_1327_positive_student_progress_displayed_on_dashboard | PASSED | 3.41s |
| tests.dashboard.test_EI_1340_student_view_current_grades | test_EI_TC_1340_positive_student_views_accurate_current_grades_across_classes | PASSED | 42.05s |
| tests.dashboard.test_EI_1344_student_dashboard_stat_card_accuracy | test_EI_1344_student_dashboard_stat_cards_show_valid_counts | PASSED | 3.85s |
| tests.dashboard.test_EI_1346_view_grade_history | test_EI_1346_A_positive_dashboard_grade_overview_reflects_real_submission | PASSED | 28.29s |
| tests.dashboard.test_EI_1346_view_grade_history | test_EI_1346_B_positive_classes_page_filters_by_term | PASSED | 43.83s |
| tests.dashboard.test_EI_2384_student_dashboard_classes_count | test_EI_2384_student_dashboard_classes_count_matches_classes_page | PASSED | 3.86s |
| tests.dashboard.test_EI_2452_student_dashboard_fullscreen | test_EI_2452_student_dashboard_fullscreen_mode | PASSED | 1.70s |
| tests.dashboard.test_EI_2619_teacher_dashboard_fullscreen | test_EI_2619_teacher_dashboard_fullscreen_mode | PASSED | 1.79s |
| tests.dashboard.test_EI_2755_initial_teacher_dashboard | test_EI_2755_positive_initial_teacher_dashboard_loads_and_functions | PASSED | 2.79s |
| tests.dashboard.test_EI_2819_teacher_dashboard_large_dataset | test_EI_2819_positive_dashboard_handles_large_number_of_classes | PASSED | 11.07s |
| tests.dashboard.test_EI_2894_initial_student_dashboard | test_EI_TC_3867_positive_dashboard_loads_with_components_and_statistics | PASSED | 26.11s |
| tests.dashboard.test_EI_2894_initial_student_dashboard | test_EI_TC_3868_negative_invalid_login_attempt_is_rejected | PASSED | 47.82s |
| tests.dashboard.test_EI_2894_initial_student_dashboard | test_EI_2894_positive_sidebar_navigation_from_dashboard_works | PASSED | 2.31s |
| tests.dashboard.test_EI_2966_student_dashboard | test_EI_TC_2012_positive_student_dashboard_loads_with_complete_statistics_and_6_backfil… | PASSED | 1.93s |
| tests.dashboard.test_EI_2966_student_dashboard | test_EI_TC_2013_positive_real_time_data_refresh_without_navigation | PASSED | 33.45s |
| tests.dashboard.test_EI_2966_student_dashboard | test_EI_TC_2014_negative_missing_enrollment_data_handled_gracefully | PASSED | 1.90s |
| tests.dashboard.test_EI_3109_date_format | test_EI_TC_4122_positive_dates_render_as_month_dd_yyyy | PASSED | 1.40s |
| tests.dashboard.test_EI_3109_date_format | test_EI_TC_4123_negative_no_non_conforming_date_format_is_shown | PASSED | 1.39s |
| tests.dashboard.test_EI_3209_analytics_dashboard | test_EI_TC_3243_dashboard_auto_refreshes Teacher dashboard auto-refresh is unwired (useAutoRefresh is student-only) — app-side gap flagged for eruditiontx-client-mvp; see EI-3209. |
SKIPPED | 0.15s |
| tests.dashboard.test_EI_3209_analytics_dashboard | test_EI_TC_3244_charts_expose_export_toolbar playwright._impl._errors.TimeoutError: Locator.wait_for: Timeout 30000ms exceeded. Call log: - waiting for locator(".apexcharts-canvas").first to be visible |
FAILED | 1m 36s |
| tests.dashboard.test_EI_596_student_dashboard_initial_environment | test_EI_TC_105_positive_dashboard_default_view_loads | PASSED | 1.74s |
| tests.dashboard.test_EI_596_student_dashboard_initial_environment | test_EI_TC_105_positive_dashboard_default_view_widgets_render | PASSED | 1.69s |
| tests.dashboard.test_EI_596_student_dashboard_initial_environment | test_EI_TC_107_positive_dashboard_tooltip_and_icon_accessibility | PASSED | 1.81s |
| tests.dashboard.test_EI_754_verify_teacher_semester_year | test_EI_TC_237_positive_display_current_semester_and_year_on_teacher_dashboard | PASSED | 1m 01s |
| tests.dashboard.test_EI_754_verify_teacher_semester_year | test_EI_TC_238_positive_display_semester_and_year_on_student_profiles | PASSED | 37.60s |
| tests.dashboard.test_EI_754_verify_teacher_semester_year | test_EI_TC_239_positive_display_semester_and_year_in_class_roster | PASSED | 12.33s |
| tests.dashboard.test_EI_754_verify_teacher_semester_year | test_EI_TC_240_negative_mismatch_semester_year_display | PASSED | 44.30s |
| tests.dashboard.test_EI_754_verify_teacher_semester_year | test_EI_TC_243_edge_accessibility_readable_display | PASSED | 12.05s |
| tests.dashboard.test_EI_804_teacher_search_student_profile | test_EI_TC_5301_positive_search_exact_student_name_shows_profile_in_results | PASSED | 2.94s |
| tests.dashboard.test_EI_804_teacher_search_student_profile | test_EI_TC_5302_negative_search_nonexistent_student_shows_no_results_without_error | PASSED | 4.29s |
| tests.dashboard.test_EI_804_teacher_search_student_profile | test_EI_TC_5303_edge_partial_middle_name_search_returns_matching_student | PASSED | 3.31s |
| tests.dashboard.test_EI_810_student_search_teacher_profile | test_EI_810_teacher_search_widget_accessible_and_input_functional_on_student_dashboard | PASSED | 33.42s |
| tests.dashboard.test_EI_810_student_search_teacher_profile | test_EI_TC_547_positive_search_teacher_profile_by_exact_first_and_last_name | PASSED | 3.98s |
| tests.dashboard.test_EI_810_student_search_teacher_profile | test_EI_TC_549_negative_search_teacher_profile_with_nonexistent_last_name_returns_no_re… | PASSED | 4.29s |
| tests.dashboard.test_EI_830_teacher_search_teacher_profile | test_EI_830_teacher_search_profile_widget_accessible_and_functional | PASSED | 1.77s |
| tests.dashboard.test_EI_830_teacher_search_teacher_profile | test_EI_TC_528_positive_search_exact_teacher_name_shows_basic_profile_in_results | PASSED | 2.13s |
| tests.dashboard.test_EI_830_teacher_search_teacher_profile | test_EI_TC_529_positive_partial_name_search_returns_matching_teachers | PASSED | 2.11s |
logout| Class | Test | Status | Duration |
|---|---|---|---|
| tests.logout.test_EI_1265_teacher_logout_verified | test_EI_1265_positive_teacher_logout_successful | PASSED | 3.88s |
| tests.logout.test_EI_2723_teacher_logout_from_classes_page | test_EI_2723_positive_teacher_logout_from_classes_page | PASSED | 3.50s |
| tests.logout.test_EI_664_teacher_logout | test_EI_664_teacher_logout | PASSED | 3.02s |
| tests.logout.test_EI_664_teacher_logout | test_EI_TC_132_successful_logout_redirect_and_protected_pages_blocked | PASSED | 4.10s |
| tests.logout.test_EI_664_teacher_logout | test_EI_TC_133_logout_without_active_session_handled_gracefully | PASSED | 1.17s |
| tests.logout.test_EI_664_teacher_logout | test_EI_TC_134_logout_network_failure_and_rapid_clicks_idempotent | PASSED | 1m 01s |
unit| Class | Test | Status | Duration |
|---|---|---|---|
| tests.unit.test_assignment_close | test_happy_path_closes_and_verifies | PASSED | 0.14s |
| tests.unit.test_assignment_close | test_429_is_retried_then_succeeds | PASSED | 0.14s |
| tests.unit.test_assignment_close | test_persistent_429_raises_instead_of_returning_silently | PASSED | 0.15s |
| tests.unit.test_assignment_close | test_non_retryable_4xx_fails_fast | PASSED | 0.14s |
| tests.unit.test_assignment_close | test_accepted_put_but_assignment_still_open_is_reported | PASSED | 0.15s |
| tests.unit.test_assignment_close | test_transport_error_is_retried_and_then_raises | PASSED | 0.14s |
| tests.unit.test_assignment_close | test_unparseable_date_close_does_not_invent_a_failure | PASSED | 0.13s |
| tests.unit.test_assignment_close | test_payload_nested_under_data_key | PASSED | 0.13s |
| tests.unit.test_assignment_close | test_verify_false_skips_the_readback AssertionError: verify=False must not re-read the assignment |
FAILED | 0.35s |
| tests.unit.test_assignment_close | test_urls_are_built_from_the_api_base | PASSED | 0.13s |
| tests.unit.test_assignment_close | test_date_close_found_in_the_nested_teacher_fetch_shape | PASSED | 0.14s |
| tests.unit.test_assignment_close | test_nested_shape_still_detects_a_genuinely_open_assignment | PASSED | 0.15s |
| tests.unit.test_auth_login_budget | test_window_count_ignores_logins_outside_the_window | PASSED | 0.15s |
| tests.unit.test_auth_login_budget | test_budget_is_disabled_by_default | PASSED | 0.14s |
| tests.unit.test_auth_login_budget | test_no_wait_while_under_budget | PASSED | 0.15s |
| tests.unit.test_auth_login_budget | test_wait_glides_window_under_ceiling_when_over_budget | PASSED | 0.15s |
| tests.unit.test_auth_login_budget | test_status_reports_over_budget | PASSED | 0.17s |
| tests.unit.test_auth_mock | test_route_targets_the_login_endpoint | PASSED | 0.13s |
| tests.unit.test_auth_mock | test_post_is_fulfilled_with_the_real_401_contract | PASSED | 0.14s |
| tests.unit.test_auth_mock | test_non_post_requests_pass_through[chromium-GET] | PASSED | 0.14s |
| tests.unit.test_auth_mock | test_non_post_requests_pass_through[chromium-OPTIONS] | PASSED | 0.12s |
| tests.unit.test_auth_mock | test_non_post_requests_pass_through[chromium-HEAD] | PASSED | 0.14s |
| tests.unit.test_auth_mock | test_non_post_requests_pass_through[chromium-PUT] | PASSED | 0.15s |
| tests.unit.test_auth_mock | test_status_and_detail_are_overridable | PASSED | 0.14s |
| tests.unit.test_auth_mock | test_rate_limited_mock_returns_429 | PASSED | 0.14s |
| tests.unit.test_auth_mock | test_rate_limited_mock_can_carry_retry_after | PASSED | 0.14s |
| tests.unit.test_auth_mock | test_rate_limited_mock_passes_through_non_post | PASSED | 0.13s |
| tests.unit.test_auth_state_expiry.TestAFreshSessionIsReused | test_a_token_with_most_of_its_life_left_is_usable | PASSED | 0.14s |
| tests.unit.test_auth_state_expiry.TestAFreshSessionIsReused | test_seconds_left_is_reported_from_the_token | PASSED | 0.13s |
| tests.unit.test_auth_state_expiry.TestASpentSessionIsRefused | test_an_expired_token_is_refused | PASSED | 0.17s |
| tests.unit.test_auth_state_expiry.TestASpentSessionIsRefused | test_a_token_inside_the_renew_margin_is_refused | PASSED | 0.13s |
| tests.unit.test_auth_state_expiry.TestASpentSessionIsRefused | test_the_boundary_is_the_margin_not_zero | PASSED | 0.14s |
| tests.unit.test_auth_state_expiry.TestTheMarginCannotCauseAReLoginStampede | test_a_short_lifetime_still_yields_a_usable_window | PASSED | 0.13s |
| tests.unit.test_auth_state_expiry.TestTheMarginCannotCauseAReLoginStampede | test_a_short_lifetime_is_still_refused_near_its_end | PASSED | 0.14s |
| tests.unit.test_auth_state_expiry.TestTheMarginCannotCauseAReLoginStampede | test_the_margin_is_configurable | PASSED | 0.14s |
| tests.unit.test_auth_state_expiry.TestTheMarginCannotCauseAReLoginStampede | test_a_garbage_margin_falls_back_to_the_default | PASSED | 0.13s |
| tests.unit.test_auth_state_expiry.TestItStaysFailOpen | test_a_state_with_no_cookies_is_usable | PASSED | 0.14s |
| tests.unit.test_auth_state_expiry.TestItStaysFailOpen | test_a_state_without_an_access_token_cookie_is_usable | PASSED | 0.14s |
| tests.unit.test_auth_state_expiry.TestItStaysFailOpen | test_an_undecodable_token_is_usable | PASSED | 0.14s |
| tests.unit.test_auth_state_expiry.TestItStaysFailOpen | test_a_token_with_no_exp_claim_is_usable | PASSED | 0.13s |
| tests.unit.test_auth_state_expiry.TestItStaysFailOpen | test_seconds_left_is_None_when_unreadable | PASSED | 0.14s |
| tests.unit.test_auth_state_expiry.TestTheDiskCacheRefusesASpentState | test_a_fresh_state_round_trips | PASSED | 0.15s |
| tests.unit.test_auth_state_expiry.TestTheDiskCacheRefusesASpentState | test_a_spent_state_is_not_returned_even_though_the_file_is_new | PASSED | 0.14s |
| tests.unit.test_auth_state_expiry.TestTheDiskCacheRefusesASpentState | test_a_miss_returns_none | PASSED | 0.15s |
| tests.unit.test_batch_runner_status_label | test_deselected_suite_is_not_failed_even_when_session_exit_code_is_nonzero | PASSED | 0.13s |
| tests.unit.test_batch_runner_status_label | test_collection_error_is_still_failed | PASSED | 0.13s |
| tests.unit.test_batch_runner_status_label | test_real_test_failure_is_still_failed | PASSED | 0.14s |
| tests.unit.test_batch_runner_status_label | test_passing_suite_is_not_dragged_down_by_another_suites_failure | PASSED | 0.13s |
| tests.unit.test_batch_runner_status_label | test_empty_suite_reports_no_duration | PASSED | 0.14s |
| tests.unit.test_class_cap_faker_orphans.TestFakerSeedOrphansAreDrainable | test_orphan_titles_are_recognised[chromium-three_as_created] | PASSED | 0.17s |
| tests.unit.test_class_cap_faker_orphans.TestFakerSeedOrphansAreDrainable | test_orphan_titles_are_recognised[chromium-much_as_created] | PASSED | 0.16s |
| tests.unit.test_class_cap_faker_orphans.TestFakerSeedOrphansAreDrainable | test_orphan_titles_are_recognised[chromium-lowercase] | PASSED | 0.17s |
| tests.unit.test_class_cap_faker_orphans.TestFakerSeedOrphansAreDrainable | test_orphan_titles_are_recognised[chromium-uppercase] | PASSED | 0.15s |
| tests.unit.test_class_cap_faker_orphans.TestFakerSeedOrphansAreDrainable | test_orphan_titles_are_recognised[chromium-surrounding_whitespace] | PASSED | 0.14s |
| tests.unit.test_class_cap_faker_orphans.TestRealTitlesAreStillProtected | test_realistic_titles_are_not_deletable[chromium-starts_with_three] | PASSED | 0.14s |
| tests.unit.test_class_cap_faker_orphans.TestRealTitlesAreStillProtected | test_realistic_titles_are_not_deletable[chromium-starts_with_much] | PASSED | 0.14s |
| tests.unit.test_class_cap_faker_orphans.TestRealTitlesAreStillProtected | test_realistic_titles_are_not_deletable[chromium-contains_three] | PASSED | 0.14s |
| tests.unit.test_class_cap_faker_orphans.TestRealTitlesAreStillProtected | test_realistic_titles_are_not_deletable[chromium-contains_much] | PASSED | 0.15s |
| tests.unit.test_class_cap_faker_orphans.TestRealTitlesAreStillProtected | test_realistic_titles_are_not_deletable[chromium-ordinary_class] | PASSED | 0.15s |
| tests.unit.test_class_cap_faker_orphans.TestRealTitlesAreStillProtected | test_realistic_titles_are_not_deletable[chromium-ordinary_class_2] | PASSED | 0.14s |
| tests.unit.test_class_cap_faker_orphans.TestRealTitlesAreStillProtected | test_realistic_titles_are_not_deletable[chromium-empty] | PASSED | 0.14s |
| tests.unit.test_class_cap_faker_orphans.TestRealTitlesAreStillProtected | test_realistic_titles_are_not_deletable[chromium-none] | PASSED | 0.15s |
| tests.unit.test_class_cap_faker_orphans.TestTheExistingMarkersStillWork | test_canonical_markers_are_unaffected[chromium-canonical_e2e_marker] | PASSED | 0.14s |
| tests.unit.test_class_cap_faker_orphans.TestTheExistingMarkersStillWork | test_canonical_markers_are_unaffected[chromium-e2e_with_space] | PASSED | 0.13s |
| tests.unit.test_class_cap_faker_orphans.TestTheExistingMarkersStillWork | test_canonical_markers_are_unaffected[chromium-e2e_case_insensitive] | PASSED | 0.13s |
| tests.unit.test_class_cap_faker_orphans.TestTheExistingMarkersStillWork | test_canonical_markers_are_unaffected[chromium-legacy_ticket_prefix] | PASSED | 0.14s |
| tests.unit.test_class_cap_faker_orphans.TestTheExistingMarkersStillWork | test_canonical_markers_are_unaffected[chromium-legacy_ticket_no_hyphen] | PASSED | 0.13s |
| tests.unit.test_class_cap_faker_orphans.TestTheExistingMarkersStillWork | test_canonical_markers_are_unaffected[chromium-ui_infix] | PASSED | 0.14s |
| tests.unit.test_class_marker_lint | test_all_created_classes_carry_a_recognized_marker | PASSED | 2.10s |
| tests.unit.test_class_marker_lint | test_the_lint_is_not_silently_checking_nothing AssertionError: 14 class titles cannot be resolved to a literal, up from the 6 recorded on 2026-08-17. An unresolvable title cannot be checked for the drain marker, so if it leaks it is stuck on the account forever. Give the title a literal leading marker, e.g. f"E2E-{faker.word()}". Do NOT r |
FAILED | 5.97s |
| tests.unit.test_class_provision.TestCreateClass | test_returns_id_and_code_on_success | PASSED | 0.16s |
| tests.unit.test_class_provision.TestCreateClass | test_walks_slots_past_409_collisions | PASSED | 0.16s |
| tests.unit.test_class_provision.TestCreateClass | test_gives_up_softly_when_every_slot_collides | PASSED | 0.14s |
| tests.unit.test_class_provision.TestCreateClass | test_a_non_409_error_stops_immediately | PASSED | 0.14s |
| tests.unit.test_class_provision.TestCreateClass | test_reads_the_code_from_alternate_response_shapes | PASSED | 0.15s |
| tests.unit.test_class_provision.TestCreateClass | test_title_stays_within_the_field_limit | PASSED | 0.15s |
| tests.unit.test_class_provision.TestCreateClass | test_each_call_uses_a_distinct_suffix | PASSED | 0.15s |
| tests.unit.test_class_provision.TestDeleteClass | test_never_raises_so_it_is_safe_in_teardown | PASSED | 0.14s |
| tests.unit.test_fixture_session_recapture.TestTheInMemoryLayerRespectsTheToken | test_a_spent_entry_is_dropped_and_a_new_session_captured | PASSED | 0.16s |
| tests.unit.test_fixture_session_recapture.TestTheInMemoryLayerRespectsTheToken | test_the_spent_entry_is_replaced_not_merely_skipped | PASSED | 0.15s |
| tests.unit.test_fixture_session_recapture.TestTheInMemoryLayerRespectsTheToken | test_a_fresh_entry_is_reused_without_logging_in | PASSED | 0.14s |
| tests.unit.test_fixture_session_recapture.TestTheInMemoryLayerRespectsTheToken | test_an_entry_just_past_the_margin_is_refused | PASSED | 0.16s |
| tests.unit.test_fixture_session_recapture.TestTheInMemoryLayerRespectsTheToken | test_an_entry_just_inside_the_margin_is_kept | PASSED | 0.15s |
| tests.unit.test_fixture_session_recapture.TestTheDiskLayerRespectsTheToken | test_a_spent_state_is_refused_however_young_the_file_is | PASSED | 0.16s |
| tests.unit.test_fixture_session_recapture.TestTheDiskLayerRespectsTheToken | test_a_fresh_state_is_returned | PASSED | 0.13s |
| tests.unit.test_fixture_session_recapture.TestTheDiskLayerRespectsTheToken | test_a_spent_disk_state_leads_to_a_capture_not_a_logged_out_browser | PASSED | 0.15s |
| tests.unit.test_fixture_session_recapture.TestTheDiskLayerRespectsTheToken | test_a_captured_session_is_persisted_for_other_processes | PASSED | 0.15s |
| tests.unit.test_fixture_session_recapture.TestTheDiskLayerRespectsTheToken | test_invalidate_removes_the_shared_entry | PASSED | 0.16s |
| tests.unit.test_fixture_session_recapture.TestTheTwoCachesCannotDriftApart | test_the_fixture_path_agrees_with_the_library_at_every_age[chromium--60] | PASSED | 0.15s |
| tests.unit.test_fixture_session_recapture.TestTheTwoCachesCannotDriftApart | test_the_fixture_path_agrees_with_the_library_at_every_age[chromium-0] | PASSED | 0.15s |
| tests.unit.test_fixture_session_recapture.TestTheTwoCachesCannotDriftApart | test_the_fixture_path_agrees_with_the_library_at_every_age[chromium-1] | PASSED | 0.15s |
| tests.unit.test_fixture_session_recapture.TestTheTwoCachesCannotDriftApart | test_the_fixture_path_agrees_with_the_library_at_every_age[chromium-120] | PASSED | 0.14s |
| tests.unit.test_fixture_session_recapture.TestTheTwoCachesCannotDriftApart | test_the_fixture_path_agrees_with_the_library_at_every_age[chromium-299] | PASSED | 0.13s |
| tests.unit.test_fixture_session_recapture.TestTheTwoCachesCannotDriftApart | test_the_fixture_path_agrees_with_the_library_at_every_age[chromium-300] | PASSED | 0.14s |
| tests.unit.test_fixture_session_recapture.TestTheTwoCachesCannotDriftApart | test_the_fixture_path_agrees_with_the_library_at_every_age[chromium-301] | PASSED | 0.13s |
| tests.unit.test_fixture_session_recapture.TestTheTwoCachesCannotDriftApart | test_the_fixture_path_agrees_with_the_library_at_every_age[chromium-600] | PASSED | 0.15s |
| tests.unit.test_fixture_session_recapture.TestTheTwoCachesCannotDriftApart | test_the_fixture_path_agrees_with_the_library_at_every_age[chromium-880] | PASSED | 0.14s |
| tests.unit.test_fixture_session_recapture.TestTheTwoCachesCannotDriftApart | test_conftest_holds_no_second_expiry_rule | PASSED | 0.13s |
| tests.unit.test_fixture_session_recapture.TestTheTwoCachesCannotDriftApart | test_the_state_dir_is_the_librarys_own | PASSED | 0.14s |
| tests.unit.test_fixture_session_recapture.TestTheWarmupScriptStillHasItsHelpers | test_the_helper_exists[chromium-_STATE_DIR] | PASSED | 0.14s |
| tests.unit.test_fixture_session_recapture.TestTheWarmupScriptStillHasItsHelpers | test_the_helper_exists[chromium-_capture_teacher_state] | PASSED | 0.13s |
| tests.unit.test_fixture_session_recapture.TestTheWarmupScriptStillHasItsHelpers | test_the_helper_exists[chromium-_load_disk_state] | PASSED | 0.13s |
| tests.unit.test_fixture_session_recapture.TestTheWarmupScriptStillHasItsHelpers | test_the_helper_exists[chromium-_save_disk_state] | PASSED | 0.14s |
| tests.unit.test_infrastructure_skips | test_environment_failures_are_flagged[chromium-Class create failed: 409 schedule ] | PASSED | 0.13s |
| tests.unit.test_infrastructure_skips | test_environment_failures_are_flagged[chromium-Class create failed: all schedule ] | PASSED | 0.12s |
| tests.unit.test_infrastructure_skips | test_environment_failures_are_flagged[chromium-ROPG token failed (aio.pool.studen] | PASSED | 0.14s |
| tests.unit.test_infrastructure_skips | test_environment_failures_are_flagged[chromium-ROPG token network error (aio.prem] | PASSED | 0.14s |
| tests.unit.test_infrastructure_skips | test_environment_failures_are_flagged[chromium-Student /me failed: 403] | PASSED | 0.18s |
| tests.unit.test_infrastructure_skips | test_environment_failures_are_flagged[chromium-Student /v1/auth/me network error:] | PASSED | 0.14s |
| tests.unit.test_infrastructure_skips | test_environment_failures_are_flagged[chromium-Assignments tab did not show row-a] | PASSED | 0.15s |
| tests.unit.test_infrastructure_skips | test_environment_failures_are_flagged[chromium-AUTH0_TEST_STAFF_EMAIL/PASSWORD no] | PASSED | 0.14s |
| tests.unit.test_infrastructure_skips | test_environment_failures_are_flagged[chromium-Could not close the seeded assignm] | PASSED | 0.14s |
| tests.unit.test_infrastructure_skips | test_environment_failures_are_flagged[chromium-The API-seeded STAAR assignment ma] | PASSED | 0.14s |
| tests.unit.test_infrastructure_skips | test_deliberate_skips_are_not_flagged[chromium-Password-mutating test: submit is ] | PASSED | 0.14s |
| tests.unit.test_infrastructure_skips | test_deliberate_skips_are_not_flagged[chromium-Not applicable to the student role] | PASSED | 0.14s |
| tests.unit.test_infrastructure_skips | test_deliberate_skips_are_not_flagged[chromium-Covered by the API suite; UI path ] | PASSED | 0.13s |
| tests.unit.test_infrastructure_skips | test_deliberate_skips_are_not_flagged[chromium-Feature is behind a flag that is o] | PASSED | 0.14s |
| tests.unit.test_infrastructure_skips | test_deliberate_skips_are_not_flagged[chromium-empty] | PASSED | 0.14s |
| tests.unit.test_infrastructure_skips | test_matching_is_case_insensitive | PASSED | 0.14s |
| tests.unit.test_infrastructure_skips | test_none_and_blank_are_safe | PASSED | 0.16s |
| tests.unit.test_infrastructure_skips | test_stats_json_carries_the_split | PASSED | 0.14s |
| tests.unit.test_infrastructure_skips | test_dashboard_renders_the_distinction | PASSED | 0.13s |
| tests.unit.test_login_budget_calibration | test_budget_is_enabled_and_within_the_server_limit[chromium-.env] | PASSED | 0.13s |
| tests.unit.test_login_budget_calibration | test_budget_is_enabled_and_within_the_server_limit[chromium-run-tests.yml] | PASSED | 0.16s |
| tests.unit.test_login_budget_calibration | test_budget_is_enabled_and_within_the_server_limit[chromium-ux-lowpeak.yml] | PASSED | 0.17s |
| tests.unit.test_login_budget_calibration | test_window_matches_the_server_window[chromium-.env] | PASSED | 0.14s |
| tests.unit.test_login_budget_calibration | test_window_matches_the_server_window[chromium-run-tests.yml] | PASSED | 0.13s |
| tests.unit.test_login_budget_calibration | test_window_matches_the_server_window[chromium-ux-lowpeak.yml] | PASSED | 0.15s |
| tests.unit.test_login_budget_calibration | test_budget_layer_actually_throttles | PASSED | 0.15s |
| tests.unit.test_login_budget_calibration | test_budget_layer_permits_when_under_budget | PASSED | 0.14s |
| tests.unit.test_login_cache | test_off_by_default_does_not_touch_page | PASSED | 0.16s |
| tests.unit.test_login_cache | test_miss_falls_through | PASSED | 0.13s |
| tests.unit.test_login_cache | test_hit_injects_cookies_and_lands | PASSED | 0.14s |
| tests.unit.test_login_cache | test_student_bounce_still_lands | PASSED | 0.14s |
| tests.unit.test_login_cache | test_stale_session_invalidates_and_falls_through | PASSED | 0.14s |
| tests.unit.test_login_cache | test_landed_authed_predicate | PASSED | 0.14s |
| tests.unit.test_no_networkidle_waits | test_no_live_networkidle_waits | PASSED | 1.10s |
| tests.unit.test_no_networkidle_waits | test_the_guard_can_actually_see_a_call | PASSED | 0.13s |
| tests.unit.test_no_networkidle_waits | test_prose_warnings_are_not_flagged | PASSED | 0.14s |
| tests.unit.test_post_login_landing_wait | test_returns_immediately_when_already_on_the_teacher_portal | PASSED | 0.13s |
| tests.unit.test_post_login_landing_wait | test_tolerates_a_slow_redirect_then_succeeds | PASSED | 0.13s |
| tests.unit.test_post_login_landing_wait | test_fails_fast_with_the_inline_error_on_a_rejected_credential | PASSED | 0.14s |
| tests.unit.test_post_login_landing_wait | test_ignores_an_error_element_that_is_present_but_empty | PASSED | 0.14s |
| tests.unit.test_post_login_landing_wait | test_survives_locator_churn_mid_navigation | PASSED | 0.12s |
| tests.unit.test_post_login_landing_wait | test_timeout_message_blames_slowness_not_a_rejected_credential | PASSED | 1.14s |
| tests.unit.test_sources_compile | test_repo_has_python_sources_to_check | PASSED | 0.15s |
| tests.unit.test_sources_compile | test_every_source_file_compiles | PASSED | 0.96s |
| tests.unit.test_sources_compile | test_third_party_imports_are_declared_in_requirements | PASSED | 1.17s |
| tests.unit.test_truncation_is_reported | test_batch_runner_puts_truncation_in_stats_json | PASSED | 0.15s |
| tests.unit.test_truncation_is_reported | test_run_batch_returns_the_flag_it_prints | PASSED | 0.15s |
| tests.unit.test_truncation_is_reported | test_dashboard_reads_and_renders_truncation | PASSED | 0.15s |
| tests.unit.test_truncation_is_reported | test_dashboard_defines_truncation_after_stats_are_loaded | PASSED | 0.16s |
| tests.unit.test_truncation_is_reported | test_timeout_nest_stays_ordered | PASSED | 0.19s |
| tests.unit.test_truncation_is_reported | test_budget_covers_the_observed_full_suite AssertionError: batch budget is 30 min. 70 min truncated every nightly, and 90 min truncated again by NINE SECONDS (run 33239413649 finished its session in 5409.98s against 5400s) with graph/settings/student still unrun. Anything under ~100 min will truncate again. assert 30.0 >= 100 |
FAILED | 0.55s |
| tests.unit.test_visibility_assertions_wait | test_assert_visible_uses_an_auto_waiting_expectation | PASSED | 0.14s |
| tests.unit.test_visibility_assertions_wait | test_is_visible_remains_the_non_waiting_primitive | PASSED | 0.15s |
| tests.unit.test_visibility_assertions_wait | test_create_question_assertion_no_longer_races | PASSED | 0.39s |
| Suite | Status | Total | Passed | Failed | Errors | Skipped | Duration | Browser |
|---|---|---|---|---|---|---|---|---|
| account | PASSED | 63 | 61 | 0 | 0 | 2 | 14m 15s | chromium |
| graph | PASSED | 7 | 7 | 0 | 0 | 0 | 54.23s | chromium |
| navigation | PASSED | 54 | 54 | 0 | 0 | 0 | 1m 48s | chromium |
account| Class | Test | Status | Duration |
|---|---|---|---|
| tests.account.test_EI_1245_student_change_password_invalid_data | test_EI_TC_4535_negative_invalid_data_blocks_submission | PASSED | 4m 06s |
| tests.account.test_EI_1292_student_password_recovery | test_EI_TC_3554_positive_student_login_shows_forgot_password_link | PASSED | 1.04s |
| tests.account.test_EI_1292_student_password_recovery | test_EI_TC_3554_positive_forgot_password_link_opens_recovery_form | PASSED | 1.04s |
| tests.account.test_EI_1292_student_password_recovery | test_EI_TC_3554_positive_valid_email_submission_shows_recovery_success | PASSED | 1.38s |
| tests.account.test_EI_1292_student_password_recovery | test_EI_TC_3554_positive_auth0_confirms_recovery_email_dispatched | PASSED | 0.34s |
| tests.account.test_EI_1296_teacher_name_field | test_EI_TC_3997_positive_change_name_with_international_diacritics_succeeds | PASSED | 17.09s |
| tests.account.test_EI_1296_teacher_name_field | test_EI_TC_3998_negative_change_name_with_whitespace_only_and_at_sign_rejected | PASSED | 7.43s |
| tests.account.test_EI_2372_teacher_password_max_length | test_EI_TC_3967_negative_over_max_length_password_is_rejected | PASSED | 31.79s |
| tests.account.test_EI_2372_teacher_password_max_length | test_EI_TC_3969_positive_in_range_password_change_and_login | PASSED | 7.06s |
| tests.account.test_EI_2403_teacher_password_special_characters | test_EI_TC_2390_positive_complex_password_change_succeeds | PASSED | 46.58s |
| tests.account.test_EI_2403_teacher_password_special_characters | test_EI_TC_2391_negative_only_special_characters_password_is_rejected | PASSED | 2.47s |
| tests.account.test_EI_2570_change_teacher_password | test_EI_TC_4531_positive_change_password_modal_presents_three_fields | PASSED | 19.71s |
| tests.account.test_EI_2570_change_teacher_password | test_EI_TC_4532_negative_non_compliant_password_blocks_submission | PASSED | 2.34s |
| tests.account.test_EI_2761_teacher_password_mismatch | test_EI_TC_2462_negative_mismatched_confirmation_blocks_submission | PASSED | 37.89s |
| tests.account.test_EI_2763_teacher_change_password_current_mismatch | test_EI_2763_teacher_change_password_current_mismatch_leaves_password_unchanged | PASSED | 20.95s |
| tests.account.test_EI_2766_teacher_password_below_min_length | test_EI_TC_2465_negative_below_min_length_blocks_submission | PASSED | 33.98s |
| tests.account.test_EI_2768_teacher_password_min_length | test_EI_TC_2470_positive_min_length_change_and_login | PASSED | 8.09s |
| tests.account.test_EI_2768_teacher_password_min_length | test_EI_TC_2471_negative_wrong_current_password_blocks_change | PASSED | 2.90s |
| tests.account.test_EI_2882_teacher_password_change_security | test_EI_TC_3951_positive_change_password_modal_presents_three_fields | PASSED | 17.67s |
| tests.account.test_EI_2882_teacher_password_change_security | test_EI_TC_3952_negative_non_compliant_password_blocks_submission | PASSED | 2.46s |
| tests.account.test_EI_3045_student_password_complexity_validation | test_EI_TC_4042_positive_strong_password_accepted_with_guidance_and_change_succeeds EI-TC-4042 performs a real password change on the AIO student account and MUST be restored afterward. Set AUTH0_DOMAIN, AUTH0_MGMT_CLIENT_ID, AUTH0_MGMT_CLIENT_SECRET, and AUTH0_EI3045_STUDENT_USER_ID to run this test. |
SKIPPED | 0.14s |
| tests.account.test_EI_3045_student_password_complexity_validation | test_EI_TC_4044_negative_common_weak_password_rejected_with_clear_error_feedback | PASSED | 31.73s |
| tests.account.test_EI_3045_student_password_complexity_validation | test_EI_TC_4045_A_negative_password_missing_uppercase_is_rejected | PASSED | 1.97s |
| tests.account.test_EI_3045_student_password_complexity_validation | test_EI_TC_4045_B_negative_password_missing_lowercase_is_rejected | PASSED | 1.95s |
| tests.account.test_EI_3045_student_password_complexity_validation | test_EI_TC_4045_C_negative_password_missing_digit_is_rejected | PASSED | 1.83s |
| tests.account.test_EI_3045_student_password_complexity_validation | test_EI_TC_4045_D_negative_password_missing_special_character_is_rejected | PASSED | 1.96s |
| tests.account.test_EI_470_bug_teacher_change_name_whitespace_results_in_empty_display | test_EI_TC_470_1_whitespace_only_first_name_is_rejected | PASSED | 10.19s |
| tests.account.test_EI_470_bug_teacher_change_name_whitespace_results_in_empty_display | test_EI_TC_470_3_whitespace_only_last_name_is_rejected | PASSED | 9.63s |
| tests.account.test_EI_470_bug_teacher_change_name_whitespace_results_in_empty_display | test_EI_TC_470_4_all_fields_whitespace_only_are_rejected | PASSED | 10.08s |
| tests.account.test_EI_470_bug_teacher_change_name_whitespace_results_in_empty_display | test_EI_TC_470_5_single_space_first_name_is_rejected | PASSED | 10.13s |
| tests.account.test_EI_470_bug_teacher_change_name_whitespace_results_in_empty_display | test_EI_TC_904_positive_change_name_to_valid_non_empty_name | PASSED | 5.00s |
| tests.account.test_EI_470_bug_teacher_change_name_whitespace_results_in_empty_display | test_EI_TC_905_negative_reject_whitespace_only_name_input | PASSED | 28.61s |
| tests.account.test_EI_514_student_password_change | test_EI_TC_343_negative_new_equals_current_shows_differ_message | PASSED | 37.76s |
| tests.account.test_EI_514_student_password_change | test_EI_TC_344_negative_below_min_length_shows_length_message | PASSED | 1.94s |
| tests.account.test_EI_523_teacher_change_name | test_EI_TC_736_positive_change_name_with_valid_first_and_last_succeeds | PASSED | 22.77s |
| tests.account.test_EI_523_teacher_change_name | test_EI_TC_737_negative_change_name_with_empty_first_or_last_shows_validation_error | PASSED | 5.84s |
| tests.account.test_EI_523_teacher_change_name | test_EI_TC_738_negative_change_name_with_invalid_characters_shows_validation_error | PASSED | 5.80s |
| tests.account.test_EI_575_teacher_change_name_with_invalid_characters | test_EI_575_TC_3_middle_name_with_numbers_shows_error | PASSED | 31.30s |
| tests.account.test_EI_575_teacher_change_name_with_invalid_characters | test_EI_575_TC_4_middle_name_with_special_characters_shows_error | PASSED | 5.18s |
| tests.account.test_EI_575_teacher_change_name_with_invalid_characters | test_EI_575_combined_all_fields_with_invalid_input_show_errors | PASSED | 5.19s |
| tests.account.test_EI_575_teacher_change_name_with_invalid_characters | test_EI_TC_802_change_name_with_valid_alphabetic_characters_1_to_25 | PASSED | 5.40s |
| tests.account.test_EI_575_teacher_change_name_with_invalid_characters | test_EI_TC_803_change_name_with_minimum_valid_length_1_character | PASSED | 5.02s |
| tests.account.test_EI_575_teacher_change_name_with_invalid_characters | test_EI_TC_804_change_name_with_maximum_valid_length_25_characters | PASSED | 5.11s |
| tests.account.test_EI_575_teacher_change_name_with_invalid_characters | test_EI_TC_combined_change_name_boundary_conditions | PASSED | 5.38s |
| tests.account.test_EI_697_student_change_password | test_EI_TC_75_positive_change_password_modal_presents_three_fields | PASSED | 18.65s |
| tests.account.test_EI_697_student_change_password | test_EI_TC_76_negative_cancel_closes_modal_leaves_settings_intact | PASSED | 2.48s |
| tests.account.test_EI_TC_802_803_804_teacher_change_name_valid_lengths | test_EI_TC_802_change_name_with_valid_alphabetic_characters_1_to_25 | PASSED | 5.37s |
| tests.account.test_EI_TC_802_803_804_teacher_change_name_valid_lengths | test_EI_TC_803_change_name_with_minimum_valid_length_1_character | PASSED | 5.34s |
| tests.account.test_EI_TC_802_803_804_teacher_change_name_valid_lengths | test_EI_TC_804_change_name_with_maximum_valid_length_25_characters | PASSED | 4.96s |
| tests.account.test_EI_TC_802_803_804_teacher_change_name_valid_lengths | test_EI_TC_combined_change_name_boundary_conditions | PASSED | 4.98s |
| tests.account.test_cdn_teacher_profile_photo_render | test_cdn_teacher_profile_photo_renders_via_presigned_private_url E2E teacher has no profile photo set — render path covered by storage-level live tests |
SKIPPED | 35.15s |
| tests.account.test_student_forgot_password_e2e | test_login_page_has_forgot_password_link | PASSED | 1.34s |
| tests.account.test_student_forgot_password_e2e | test_forgot_password_link_navigates_to_local_page | PASSED | 1.41s |
| tests.account.test_student_forgot_password_e2e | test_forgot_password_with_email_shows_in_app_success | PASSED | 2.61s |
| tests.account.test_student_forgot_password_e2e | test_forgot_password_without_email_shows_in_app_error | PASSED | 1.15s |
| tests.account.test_student_forgot_password_e2e | test_auth0_confirms_reset_email_was_sent | PASSED | 0.34s |
| tests.account.test_student_forgot_password_e2e | test_auth0_logs_confirm_password_reset_event | PASSED | 3.01s |
| tests.account.test_teacher_forgot_password_e2e | test_ei_tc_4570_step_1_2_login_page_exposes_forgot_password_link | PASSED | 1.80s |
| tests.account.test_teacher_forgot_password_e2e | test_ei_tc_4570_step_3_4_forgot_password_link_navigates_to_local_page | PASSED | 1.29s |
| tests.account.test_teacher_forgot_password_e2e | test_ei_tc_4570_step_5_teacher_email_triggers_in_app_success | PASSED | 2.58s |
| tests.account.test_teacher_forgot_password_e2e | test_ei_tc_4571_step_3_empty_email_blocked_client_side | PASSED | 1.14s |
| tests.account.test_teacher_forgot_password_e2e | test_ei_tc_4570_step_5_auth0_confirms_reset_email_was_sent | PASSED | 0.31s |
| tests.account.test_teacher_forgot_password_e2e | test_ei_tc_4570_step_5_auth0_logs_record_password_reset_event | PASSED | 3.04s |
graph| Class | Test | Status | Duration |
|---|---|---|---|
| tests.graph.test_EI_3116_graph_framework_integration | test_EI_3116_positive_graph_framework_integrates_via_embedded_iframe | PASSED | 12.22s |
| tests.graph.test_EI_3129_graph_toolbar_implementation | test_EI_TC_3129_positive_toolbar_switches_tool_opens_axes_and_clears_canvas | PASSED | 7.28s |
| tests.graph.test_EI_3130_interactive_graph_elements | test_EI_TC_3130_A_positive_draggable_point_relocates_on_drag | PASSED | 5.25s |
| tests.graph.test_EI_3130_interactive_graph_elements | test_EI_TC_3130_B_positive_dragging_line_endpoint_updates_render_in_realtime | PASSED | 5.54s |
| tests.graph.test_EI_3134_graph_core_engine | test_EI_TC_2607_positive_render_line_from_2d_points | PASSED | 4.16s |
| tests.graph.test_EI_3134_graph_core_engine | test_EI_TC_2611_positive_realtime_data_point_addition_updates_render | PASSED | 5.74s |
| tests.graph.test_EI_3167_graph_framework_agnostic_web_components | test_EI_3167_positive_graph_component_postmessage_event_system | PASSED | 14.03s |
| Suite | Status | Total | Passed | Failed | Errors | Skipped | Duration | Browser |
|---|---|---|---|---|---|---|---|---|
| assignments | PASSED | 25 | 25 | 0 | 0 | 0 | 29m 29s | chromium |
| graph-editor | NO TESTS | 0 | 0 | 0 | 0 | 0 | 0.00s | chromium |
| question-bank | NO TESTS | 0 | 0 | 0 | 0 | 0 | 0.00s | chromium |
assignments| Class | Test | Status | Duration |
|---|---|---|---|
| tests.assignments.test_EI_1100_teacher_global_assignment_not_displayed_bug | test_EI_1100_teacher_global_assignment_list_is_never_blank | PASSED | 1m 02s |
| tests.assignments.test_EI_1107_bug_item_analysis_raw_json_in_columns | test_EI_TC_3773_negative_non_teacher_cannot_view_analytics | PASSED | 28.63s |
| tests.assignments.test_EI_1165_bug_item_analysis_json_formatted_choice_values | test_EI_1165_positive_item_analysis_choice_values_not_json_formatted | PASSED | 1m 05s |
| tests.assignments.test_EI_1183_teacher_global_assignment_reuse_question_preview_overflow | test_EI_1183_teacher_global_assignment_reuse_question_preview_ui_malfunction | PASSED | 1m 16s |
| tests.assignments.test_EI_1183_teacher_global_assignment_reuse_question_preview_overflow | test_EI_TC_1289_positive_ui_handles_moderately_long_paragraph_in_reused_assignment_preview | PASSED | 1m 00s |
| tests.assignments.test_EI_1183_teacher_global_assignment_reuse_question_preview_overflow | test_EI_TC_1290_negative_ui_does_not_overflow_container_with_long_paragraph_in_preview | PASSED | 40.35s |
| tests.assignments.test_EI_1210_late_submission_teacher_approval | test_EI_TC_4412_negative_late_submission_auto_rejected_when_disabled | PASSED | 1m 46s |
| tests.assignments.test_EI_1210_late_submission_teacher_approval | test_EI_TC_4414_positive_late_submission_teacher_approval_workflow | PASSED | 2m 15s |
| tests.assignments.test_EI_1304_teacher_review_student_submissions | test_EI_TC_1304_positive_teacher_reviews_student_submission | PASSED | 3m 27s |
| tests.assignments.test_EI_187_staar_assignment_data_analytics | test_EI_TC_896_positive_staar_assignment_analytics_page_loads_and_displays_correct_over… | PASSED | 2m 00s |
| tests.assignments.test_EI_187_staar_assignment_data_analytics | test_EI_TC_897_positive_staar_analytics_renders_correctly_with_edge_case_numeric_values | PASSED | 1m 18s |
| tests.assignments.test_EI_187_staar_assignment_data_analytics | test_EI_187_staar_category_analysis_section_renders_with_correct_column_structure | PASSED | 1m 01s |
| tests.assignments.test_EI_188_assignment_data_analytics | test_EI_TC_893_positive_summary_renders_metrics_and_visuals | PASSED | 2m 00s |
| tests.assignments.test_EI_188_assignment_data_analytics | test_EI_TC_894_summary_zero_state_when_no_submissions | PASSED | 2m 38s |
| tests.assignments.test_EI_190_teacher_act_assignment_data_analytics | test_EI_TC_190_positive_act_assignment_data_analytics_displays_metrics | PASSED | 1m 51s |
| tests.assignments.test_EI_190_teacher_act_assignment_data_analytics | test_EI_TC_190_B_positive_act_analytics_renders_correctly_with_edge_case_numeric_values | PASSED | 56.10s |
| tests.assignments.test_EI_190_teacher_act_assignment_data_analytics | test_EI_TC_190_C_positive_act_topic_analysis_section_renders_with_correct_column_structure | PASSED | 59.45s |
| tests.assignments.test_EI_190_teacher_act_assignment_data_analytics | test_EI_TC_190_D_edge_act_summary_zero_state_when_no_submissions | PASSED | 1m 08s |
| tests.assignments.test_EI_2386_student_submission_page_e2e | test_EI_TC_2840_positive_correct_times_and_question_count | PASSED | 11.44s |
| tests.assignments.test_EI_2386_student_submission_page_e2e | test_EI_TC_2841_negative_times_not_shown_as_raw_utc | PASSED | 9.21s |
| tests.assignments.test_EI_2386_student_submission_page_e2e | test_EI_2386_date_close_not_shown_as_raw_utc | PASSED | 45.97s |
| tests.assignments.test_EI_2386_student_submission_page_e2e | test_EI_2386_submission_page_shows_local_times_and_counts | PASSED | 7.40s |
| tests.assignments.test_EI_2407_teacher_view_global_assignment_page | test_EI_2407_teacher_view_global_assignment_page | PASSED | 45.71s |
| tests.assignments.test_EI_2408_teacher_global_assignment_action_access | test_EI_2408_teacher_global_assignment_action_access_and_pagination | PASSED | 13.05s |
| tests.assignments.test_EI_2533_student_assignment_before_open_date | test_EI_TC_2533_negative_assignment_not_accessible_before_open_date | PASSED | 19.59s |
| Suite | Status | Total | Passed | Failed | Errors | Skipped | Duration | Browser |
|---|---|---|---|---|---|---|---|---|
| classes | FAILED | 56 | 54 | 1 | 0 | 1 | 26m 20s | chromium |
| home | NO TESTS | 0 | 0 | 0 | 0 | 0 | 0.00s | chromium |
| settings | NO TESTS | 0 | 0 | 0 | 0 | 0 | 0.00s | chromium |
classes| Class | Test | Status | Duration |
|---|---|---|---|
| tests.classes.test_EI_1078_teacher_validate_class_code_before_creation | test_EI_TC_5309_positive_class_code_is_six_alphanumeric_characters | PASSED | 1m 08s |
| tests.classes.test_EI_1078_teacher_validate_class_code_before_creation | test_EI_TC_5310_positive_class_code_one_to_one_with_its_class | PASSED | 43.41s |
| tests.classes.test_EI_1078_teacher_validate_class_code_before_creation | test_EI_TC_5311_edge_deleted_class_code_is_not_reassigned | PASSED | 41.91s |
| tests.classes.test_EI_1088_student_improve_classes_card_ui_layout_design | test_EI_1088_student_improve_classes_card_ui_layout_design | PASSED | 1m 55s |
| tests.classes.test_EI_1088_student_improve_classes_card_ui_layout_design | test_EI_TC_4342_validate_full_UI_rendering_of_Classes_Card_with_all_design_elements | PASSED | 2m 07s |
| tests.classes.test_EI_1088_student_improve_classes_card_ui_layout_design | test_EI_TC_4344_validate_error_handling_for_missing_resources_and_invalid_data | PASSED | 1m 55s |
| tests.classes.test_EI_1108_teacher_classes_model_business_logic | test_EI_TC_4109_negative_create_class_with_empty_title | PASSED | 21.21s |
| tests.classes.test_EI_1108_teacher_classes_model_business_logic | test_EI_TC_4110_A_positive_two_sequential_classes_produce_distinct_codes | PASSED | 17.73s |
| tests.classes.test_EI_1108_teacher_classes_model_business_logic | test_EI_TC_4110_B_positive_three_classes_all_have_globally_unique_codes | PASSED | 20.84s |
| tests.classes.test_EI_1108_teacher_classes_model_business_logic | test_EI_TC_4110_C_positive_class_code_format_is_consistent_and_alphanumeric | PASSED | 17.88s |
| tests.classes.test_EI_1157_teacher_classes_pagination_removed | test_EI_1157_teacher_classes_page_has_no_pagination_controls | PASSED | 1.19s |
| tests.classes.test_EI_1162_bug_teacher_add_confirm_dialog_if_rejecting_or_removing_student_from_class_roster | test_EI_1162_bug_teacher_add_confirm_dialog_if_rejecting_or_removing_student_from_class… | PASSED | 47.29s |
| tests.classes.test_EI_1162_bug_teacher_add_confirm_dialog_if_rejecting_or_removing_student_from_class_roster | test_EI_TC_1173_confirm_dialog_appears_and_action_completes_after_confirming_removal_of… | PASSED | 45.80s |
| tests.classes.test_EI_1162_bug_teacher_add_confirm_dialog_if_rejecting_or_removing_student_from_class_roster | test_EI_TC_1174_cancel_in_confirmation_dialog_prevents_removal_rejection_from_executing | PASSED | 45.50s |
| tests.classes.test_EI_1163_bug_teacher_undo_reject_remove_student | test_EI_1163_A_bug_undo_option_after_removing_enrolled_student | PASSED | 1m 31s |
| tests.classes.test_EI_1163_bug_teacher_undo_reject_remove_student | test_EI_1163_B_bug_undo_option_after_rejecting_pending_student | PASSED | 58.52s |
| tests.classes.test_EI_1178_student_rows_per_page_vertical_alignment | test_EI_TC_1283_positive_rows_per_page_value_is_vertically_centered_on_initial_load | PASSED | 9.84s |
| tests.classes.test_EI_1178_student_rows_per_page_vertical_alignment | test_EI_TC_1284_positive_alignment_survives_pagination_and_value_change | PASSED | 5.36s |
| tests.classes.test_EI_1178_student_rows_per_page_vertical_alignment | test_EI_TC_1286_negative_keyboard_navigation_remains_usable_under_simulated_misalignment | PASSED | 3.47s |
| tests.classes.test_EI_1184_teacher_classes_page_bug | test_EI_1184_positive_teacher_classes_page_functions_without_bugs | PASSED | 18.29s |
| tests.classes.test_EI_1185_teacher_search_class_bug | test_EI_1185_positive_teacher_search_class_works_reliably | PASSED | 14.72s |
| tests.classes.test_EI_1187_classes_header_semester | test_EI_TC_1945_positive_verify_classes_header_shows_correct_semester_after_creating_a_… | PASSED | 15.13s |
| tests.classes.test_EI_1187_classes_header_semester | test_EI_TC_1946_positive_verify_header_consistency_for_multiple_classes_across_semesters | PASSED | 10.11s |
| tests.classes.test_EI_1187_classes_header_semester | test_EI_TC_1947_negative_validate_error_when_creating_class_without_selecting_semester | PASSED | 11.57s |
| tests.classes.test_EI_1187_classes_page_header_semester | test_EI_TC_1945_positive_class_detail_header_shows_correct_semester_after_class_creation | PASSED | 6.85s |
| tests.classes.test_EI_1187_classes_page_header_semester | test_EI_TC_1946_positive_per_class_header_consistency_across_semesters | PASSED | 13.49s |
| tests.classes.test_EI_1187_classes_page_header_semester | test_EI_TC_1946_positive_global_classes_list_appbar_reflects_semester_filter | PASSED | 8.27s |
| tests.classes.test_EI_1187_classes_page_header_semester | test_EI_TC_1947_negative_create_class_without_semester_save_button_is_disabled | PASSED | 5.78s |
| tests.classes.test_EI_1187_header_reflects_filter | test_EI_TC_1946_positive_header_reflects_selected_filter | PASSED | 3.79s |
| tests.classes.test_EI_1187_header_reflects_filter | test_EI_TC_1946_parity_multiple_semesters_round_trip | PASSED | 4.01s |
| tests.classes.test_EI_1195_gradebook_student_score_match | test_EI_TC_3710_positive_graded_score_matches_between_gradebook_and_student | PASSED | 25.64s |
| tests.classes.test_EI_1195_gradebook_student_score_match | test_EI_TC_3711_negative_no_mismatch_across_graded_and_missed | PASSED | 25.40s |
| tests.classes.test_EI_1204_teacher_edit_class_prevents_exact_duplicate | test_EI_1204_negative_editing_class_to_duplicate_another_is_rejected | PASSED | 8.11s |
| tests.classes.test_EI_1216_teacher_edit_class_whitespace_validation | test_EI_TC_2867_positive_edit_class_with_valid_short_title_and_description_enables_save | PASSED | 12.53s |
| tests.classes.test_EI_1216_teacher_edit_class_whitespace_validation | test_EI_TC_2868_positive_edit_class_with_yup_max_boundary_title_and_description_enables… | PASSED | 11.04s |
| tests.classes.test_EI_1216_teacher_edit_class_whitespace_validation | test_EI_TC_2869_negative_whitespace_only_title_and_description_show_validation_errors_a… EI-1216 TC-2869: the description whitespace `.required()` fix (#79) is not deployed on this frontend (title validation + Save-blocking verified; description shows no error). Re-run the description assertion after the #79 deploy. desc helpers: []. |
SKIPPED | 12.41s |
| tests.classes.test_EI_1216_teacher_edit_class_whitespace_validation | test_EI_1216_negative_special_characters_only_title_blocks_save | PASSED | 11.96s |
| tests.classes.test_EI_1217_bug_teacher_create_assignment | test_EI_1217_bug_teacher_create_assignment | PASSED | 30.57s |
| tests.classes.test_EI_1217_bug_teacher_create_assignment | test_EI_TC_3007_create_a_valid_assignment_with_proper_title_and_description | PASSED | 44.48s |
| tests.classes.test_EI_1217_bug_teacher_create_assignment | test_EI_TC_3008_block_whitespace_only_input_on_title_description_at_step_1 | PASSED | 30.31s |
| tests.classes.test_EI_1218_teacher_new_assignment_validation | test_EI_TC_2916_positive_valid_title_and_description_render_with_no_helper_text | PASSED | 13.85s |
| tests.classes.test_EI_1218_teacher_new_assignment_validation | test_EI_TC_2917_negative_whitespace_only_title_and_description_block_next_with_helper_text | PASSED | 14.01s |
| tests.classes.test_EI_1218_teacher_new_assignment_validation | test_EI_1218_negative_special_characters_only_title_blocks_next | PASSED | 13.60s |
| tests.classes.test_EI_1221_bug_assignment_created_without_assigned_class | test_EI_TC_1221_negative_assignment_not_created_without_assigned_class | PASSED | 47.20s |
| tests.classes.test_EI_1229_teacher_edit_class_description_not_required | test_EI_1229_teacher_edit_class_description_not_required | PASSED | 10.93s |
| tests.classes.test_EI_1229_teacher_edit_class_description_not_required | test_EI_TC_3994_positive_edit_class_with_empty_description_saves_successfully | PASSED | 10.75s |
| tests.classes.test_EI_1229_teacher_edit_class_description_not_required | test_EI_TC_3996_negative_non_editable_code_field_is_unaffected_by_save | PASSED | 10.67s |
| tests.classes.test_EI_1231_teacher_classes_page_bug | test_EI_1231_teacher_classes_page_bug | PASSED | 37.09s |
| tests.classes.test_EI_1231_teacher_classes_page_bug | test_EI_TC_4003_positive_classes_page_loads_with_header_and_at_least_one_card | PASSED | 3.90s |
| tests.classes.test_EI_1231_teacher_classes_page_bug | test_EI_TC_4005_negative_student_attempting_teacher_classes_route_is_redirected_away | PASSED | 4.08s |
| tests.classes.test_EI_1231_teacher_classes_page_bug | test_EI_TC_4006_positive_create_class_with_edge_data_long_name_and_special_chars playwright._impl._errors.TimeoutError: Locator.click: Timeout 30000ms exceeded. Call log: - waiting for locator("#teacher-classes-page-create-new-class-btn") - - locator resolved to <button disabled tabindex="-1" type="button" id="teacher-classes-page-create-new-class-btn" title="You've r |
FAILED | 1m 39s |
| tests.classes.test_EI_1246_student_leave_class | test_EI_TC_4092_student_leaves_enrolled_class_successfully | PASSED | 1m 08s |
| tests.classes.test_EI_1261_teacher_verify_that_is_able_to_create_a_new_class | test_EI_1261_teacher_verify_that_is_able_to_create_a_new_class | PASSED | 5.86s |
| tests.classes.test_EI_1261_teacher_verify_that_is_able_to_create_a_new_class | test_EI_TC_590_teacher_creates_a_new_class_successfully_with_valid_data | PASSED | 6.09s |
| tests.classes.test_EI_1261_teacher_verify_that_is_able_to_create_a_new_class | test_EI_TC_591_teacher_attempts_to_create_a_class_without_required_name | PASSED | 5.30s |
| tests.classes.test_EI_1268_student_class_search_by_semester | test_EI_1268_student_class_search_by_semester | PASSED | 6.59s |
| Suite | Status | Total | Passed | Failed | Errors | Skipped | Duration | Browser |
|---|---|---|---|---|---|---|---|---|
| contact | PASSED | 14 | 14 | 0 | 0 | 0 | 2m 50s | chromium |
| login | PASSED | 107 | 107 | 0 | 0 | 0 | 19m 33s | chromium |
| student | PASSED | 7 | 7 | 0 | 0 | 0 | 6m 46s | chromium |
contact| Class | Test | Status | Duration |
|---|---|---|---|
| tests.contact.test_contact | test_contact_page_loads | PASSED | 2m 35s |
| tests.contact.test_contact | test_contact_page_heading_visible | PASSED | 0.99s |
| tests.contact.test_contact | test_contact_support_email_displayed | PASSED | 1.00s |
| tests.contact.test_contact | test_contact_phone_number_displayed | PASSED | 0.99s |
| tests.contact.test_contact | test_contact_location_displayed | PASSED | 0.97s |
| tests.contact.test_contact | test_contact_name_field_visible | PASSED | 0.96s |
| tests.contact.test_contact | test_contact_email_field_visible | PASSED | 0.97s |
| tests.contact.test_contact | test_contact_subject_field_visible | PASSED | 0.98s |
| tests.contact.test_contact | test_contact_message_field_visible | PASSED | 0.94s |
| tests.contact.test_contact | test_contact_send_button_visible_and_enabled | PASSED | 0.98s |
| tests.contact.test_contact | test_contact_form_accepts_input | PASSED | 1.11s |
| tests.contact.test_contact | test_EI_TC_4224_positive_contact_page_accessible_and_responsive | PASSED | 1.78s |
| tests.contact.test_contact | test_EI_TC_4225_positive_contact_page_loads_with_correct_info | PASSED | 1.13s |
| tests.contact.test_contact | test_EI_TC_4227_negative_contact_form_invalid_inputs_blocked | PASSED | 2.14s |
login| Class | Test | Status | Duration |
|---|---|---|---|
| tests.login.test_EI_1074_bug_incorrect_error_message_displayed_on_invalid_login | test_EI_1074_bug_incorrect_error_message_displayed_on_invalid_login | PASSED | 1.00s |
| tests.login.test_EI_1074_bug_incorrect_error_message_displayed_on_invalid_login | test_EI_3372_bug_teacher_auth0_login | PASSED | 18.08s |
| tests.login.test_EI_1074_bug_incorrect_error_message_displayed_on_invalid_login | test_EI_TC_4297_verify_incorrect_login_shows_invalid_credentials_instead_of_password_po… | PASSED | 5.92s |
| tests.login.test_EI_1074_bug_incorrect_error_message_displayed_on_invalid_login | test_EI_TC_4299_verify_successful_login_flow_for_Teacher | PASSED | 45.11s |
| tests.login.test_EI_1247_teacher_login_with_empty_email_only | test_EI_1247_teacher_login_with_empty_email_only | PASSED | 2.76s |
| tests.login.test_EI_1247_teacher_login_with_empty_email_only | test_EI_TC_4116_negative_login_with_empty_email | PASSED | 1.12s |
| tests.login.test_EI_1247_teacher_login_with_empty_email_only | test_EI_TC_4118_positive_login_with_valid_email_and_password | PASSED | 21.55s |
| tests.login.test_EI_1297_student_session_management | test_EI_TC_1297_A_positive_student_logs_in_and_navigates_portal_sections | PASSED | 38.19s |
| tests.login.test_EI_1297_student_session_management | test_EI_TC_1297_B_positive_student_session_persists_across_browser_tabs | PASSED | 13.12s |
| tests.login.test_EI_1297_student_session_management | test_EI_TC_1297_C_positive_secure_logout_and_refresh_does_not_leak_protected_content | PASSED | 47.56s |
| tests.login.test_EI_1297_student_session_management | test_EI_TC_1297_D_positive_student_holds_two_concurrent_sessions | PASSED | 25.23s |
| tests.login.test_EI_1318_student_login_with_empty_email | test_EI_1318_student_login_with_empty_email | PASSED | 2.72s |
| tests.login.test_EI_1318_student_login_with_empty_email | test_EI_TC_3611_positive_successful_login_with_valid_email_and_password | PASSED | 27.52s |
| tests.login.test_EI_1318_student_login_with_empty_email | test_EI_TC_3612_negative_empty_email_with_valid_password_shows_validation_and_prevents_… | PASSED | 1.14s |
| tests.login.test_EI_1326_student_login_with_invalid_email_format | test_EI_1326_student_login_with_invalid_email_format | PASSED | 2.40s |
| tests.login.test_EI_1326_student_login_with_invalid_email_format | test_EI_TC_3605_positive_valid_email_login_succeeds_on_student_portal | PASSED | 8.45s |
| tests.login.test_EI_1326_student_login_with_invalid_email_format | test_EI_TC_3606_negative_invalid_email_missing_at_is_rejected | PASSED | 1.01s |
| tests.login.test_EI_1329_student_login_with_empty_password | test_EI_1329_student_login_with_empty_password | PASSED | 2.41s |
| tests.login.test_EI_1329_student_login_with_empty_password | test_EI_TC_4082_positive_valid_login_with_correct_email_and_password | PASSED | 41.60s |
| tests.login.test_EI_1329_student_login_with_empty_password | test_EI_TC_4080_negative_empty_password_with_valid_email_shows_validation_and_prevents_… | PASSED | 1.12s |
| tests.login.test_EI_2499_teacher_login_mixed_case_email | test_EI_TC_1846_positive_login_succeeds_with_lowercase_email | PASSED | 8.86s |
| tests.login.test_EI_2499_teacher_login_mixed_case_email | test_EI_TC_1847_positive_login_succeeds_with_uppercase_email | PASSED | 8.47s |
| tests.login.test_EI_2499_teacher_login_mixed_case_email | test_EI_2499_positive_login_succeeds_with_alternating_case_email | PASSED | 41.64s |
| tests.login.test_EI_2499_teacher_login_mixed_case_email | test_EI_TC_1848_negative_login_fails_with_wrong_password_for_mixed_case_email | PASSED | 3.73s |
| tests.login.test_EI_2499_teacher_login_mixed_case_email | test_EI_TC_1849_negative_login_fails_with_nonexistent_email | PASSED | 3.72s |
| tests.login.test_EI_2515_student_login_malformed_email_validation | test_EI_2515_negative_email_missing_at_symbol_is_rejected | PASSED | 1.03s |
| tests.login.test_EI_2515_student_login_malformed_email_validation | test_EI_2515_negative_email_missing_domain_extension_is_rejected | PASSED | 1.06s |
| tests.login.test_EI_2515_student_login_malformed_email_validation | test_EI_2515_negative_various_malformed_email_combinations_are_rejected | PASSED | 2.25s |
| tests.login.test_EI_2522_teacher_login_sql_injection_payloads_rejected | test_EI_2522_teacher_login_sql_injection_payloads_rejected | PASSED | 26.55s |
| tests.login.test_EI_2528_teacher_login_with_valid_credentials | test_EI_2528_teacher_login_with_valid_credentials | PASSED | 1.06s |
| tests.login.test_EI_2528_teacher_login_with_valid_credentials | test_EI_TC_4113_teacher_login_with_valid_teacher_credentials | PASSED | 33.69s |
| tests.login.test_EI_2528_teacher_login_with_valid_credentials | test_EI_TC_4114_teacher_login_with_invalid_credentials | PASSED | 6.12s |
| tests.login.test_EI_2630_login_with_invalid_credentials | test_EI_TC_1870_positive_valid_teacher_credentials_land_on_teacher_portal | PASSED | 40.78s |
| tests.login.test_EI_2630_login_with_invalid_credentials | test_EI_TC_1871_negative_invalid_username_and_invalid_password_are_rejected | PASSED | 5.91s |
| tests.login.test_EI_2630_login_with_invalid_credentials | test_EI_TC_1872_negative_valid_username_with_invalid_password_is_rejected | PASSED | 5.95s |
| tests.login.test_EI_2630_login_with_invalid_credentials | test_EI_TC_1873_negative_empty_credentials_are_rejected | PASSED | 5.84s |
| tests.login.test_EI_2687_teacher_login_leading_trailing_spaces | test_EI_2687_teacher_login_leading_trailing_spaces_handled_correctly | PASSED | 10.53s |
| tests.login.test_EI_2687_teacher_login_leading_trailing_spaces | test_EI_TC_2009_positive_login_does_not_succeed_with_space_padded_password | PASSED | 3.70s |
| tests.login.test_EI_2687_teacher_login_leading_trailing_spaces | test_EI_TC_2010_negative_invalid_credentials_with_spaces_are_rejected | PASSED | 3.63s |
| tests.login.test_EI_2738_teacher_login_unregistered_email | test_EI_TC_2739_negative_login_with_unregistered_email_is_rejected | PASSED | 5.91s |
| tests.login.test_EI_2738_teacher_login_unregistered_email | test_EI_TC_2740_negative_rejection_message_does_not_reveal_account_existence | PASSED | 11.35s |
| tests.login.test_EI_2741_login_with_incorrect_password | test_EI_TC_3987_positive_correct_password_lands_on_teacher_dashboard | PASSED | 19.24s |
| tests.login.test_EI_2741_login_with_incorrect_password | test_EI_TC_3985_negative_incorrect_password_is_rejected_with_generic_error | PASSED | 6.05s |
| tests.login.test_EI_2743_teacher_login_with_empty_password_only | test_EI_2743_teacher_login_with_empty_password_only | PASSED | 6.05s |
| tests.login.test_EI_2743_teacher_login_with_empty_password_only | test_EI_TC_2486_login_with_valid_email_and_password___successful_login | PASSED | 1.17s |
| tests.login.test_EI_2743_teacher_login_with_empty_password_only | test_EI_2487_login_with_empty_password_should_be_rejected | PASSED | 5.93s |
| tests.login.test_EI_2744_teacher_login_email_validation | test_EI_TC_2481_positive_valid_email_and_password_logs_in | PASSED | 1.66s |
| tests.login.test_EI_2744_teacher_login_email_validation | test_EI_TC_2482_negative_email_missing_at_symbol_is_rejected | PASSED | 1.32s |
| tests.login.test_EI_2744_teacher_login_email_validation | test_EI_TC_2483_negative_email_invalid_domain_is_rejected | PASSED | 1.18s |
| tests.login.test_EI_2760_student_successful_login | test_EI_TC_5304_positive_student_successful_login_lands_on_dashboard | PASSED | 27.96s |
| tests.login.test_EI_2760_student_successful_login | test_EI_TC_5305_positive_student_session_persists_across_reload | PASSED | 12.22s |
| tests.login.test_EI_2760_student_successful_login | test_EI_TC_5306_positive_student_logout_ends_session_and_blocks_dashboard | PASSED | 15.07s |
| tests.login.test_EI_2821_teacher_login_account | test_EI_2821_teacher_login_account | PASSED | 1.03s |
| tests.login.test_EI_2821_teacher_login_account | test_EI_TC_3935_successful_login_for_teacher_with_valid_credentials_and_access_to_dashb… | PASSED | 32.28s |
| tests.login.test_EI_2821_teacher_login_account | test_EI_TC_3936_login_with_invalid_password_should_fail_and_show_error | PASSED | 6.05s |
| tests.login.test_EI_2821_teacher_login_account | test_EI_TC_3937_login_with_non_existent_email_should_fail_gracefully | PASSED | 6.03s |
| tests.login.test_EI_2861_teacher_login_max_password_length | test_EI_TC_4000_positive_password_at_max_length_is_accepted | PASSED | 1.47s |
| tests.login.test_EI_2861_teacher_login_max_password_length | test_EI_TC_4001_negative_password_over_max_length_is_blocked | PASSED | 3.53s |
| tests.login.test_EI_2934_login_case_sensitive_password | test_EI_TC_4339_positive_login_succeeds_with_correct_case_password | PASSED | 38.96s |
| tests.login.test_EI_2934_login_case_sensitive_password | test_EI_TC_4341_negative_login_fails_with_case_mismatched_password | PASSED | 5.92s |
| tests.login.test_EI_2938_teacher_multi_device_session | test_EI_TC_2922_positive_same_teacher_logs_in_on_desktop_and_mobile_concurrently | PASSED | 1m 02s |
| tests.login.test_EI_2938_teacher_multi_device_session | test_EI_TC_2923_negative_four_concurrent_sessions_all_succeed_documenting_no_session_cap | PASSED | 1m 06s |
| tests.login.test_EI_2962_login_character_length | test_EI_TC_3960_positive_valid_length_credentials_login_succeeds | PASSED | 2.46s |
| tests.login.test_EI_2962_login_character_length | test_EI_TC_3962_negative_email_over_max_length_blocks_login | PASSED | 2.55s |
| tests.login.test_EI_2962_login_character_length | test_EI_TC_3963_negative_password_over_max_length_blocks_login | PASSED | 2.51s |
| tests.login.test_EI_2995_student_login_with_empty_email_and_password | test_EI_2995_student_login_with_empty_email_and_password | PASSED | 1.08s |
| tests.login.test_EI_3307_forgot_password_link_login_pages | test_EI_TC_2353_positive_forgot_password_link_visible_on_all_login_pages | PASSED | 1.44s |
| tests.login.test_EI_3307_forgot_password_link_login_pages | test_EI_TC_2354_negative_invalid_email_is_rejected_not_silently_accepted | PASSED | 9.00s |
| tests.login.test_EI_3372_bug_teacher_auth0_login | test_EI_3372_login_button_visible_on_home | PASSED | 1.11s |
| tests.login.test_EI_3372_bug_teacher_auth0_login | test_EI_3372_bug_teacher_auth0_login | PASSED | 1.15s |
| tests.login.test_EI_3372_bug_teacher_auth0_login | test_valid_credentials_redirect_back_to_app | PASSED | 24.69s |
| tests.login.test_EI_3372_bug_teacher_auth0_login | test_authenticated_user_lands_on_teacher_page | PASSED | 2.78s |
| tests.login.test_EI_3372_bug_teacher_auth0_login | test_authenticated_page_has_main_content | PASSED | 3.42s |
| tests.login.test_EI_3435_back_arrow_login_ui | test_EI_TC_3435_landing_page_stops_session_so_login_button_shows_form | PASSED | 7.20s |
| tests.login.test_EI_515_bug_login_unexpected_application_error | test_EI_TC_3529_positive_valid_credentials_land_on_teacher_dashboard | PASSED | 2.27s |
| tests.login.test_EI_515_bug_login_unexpected_application_error | test_EI_TC_3530_negative_incorrect_password_does_not_crash_the_app | PASSED | 6.07s |
| tests.login.test_EI_626_user_authentication | test_EI_626_teacher_authenticates_with_valid_credentials | PASSED | 4.75s |
| tests.login.test_EI_626_user_authentication | test_EI_626_student_authenticates_with_valid_credentials | PASSED | 4.95s |
| tests.login.test_EI_626_user_authentication | test_EI_626_invalid_credentials_are_rejected | PASSED | 6.14s |
| tests.login.test_EI_821_username_and_password_length_restrictions | test_EI_TC_2018_positive_valid_credentials_with_min_chars_length | PASSED | 25.12s |
| tests.login.test_EI_821_username_and_password_length_restrictions | test_EI_TC_2020_negative_username_with_max_chars_length | PASSED | 2.56s |
| tests.login.test_EI_821_username_and_password_length_restrictions | test_EI_TC_2022_negative_password_with_max_chars_length | PASSED | 2.68s |
| tests.login.test_EI_821_username_and_password_length_restrictions | test_EI_TC_2026_edge_email_at_exactly_max_length_is_accepted | PASSED | 1.48s |
| tests.login.test_auth0_login_flow | test_valid_credentials_redirect_back_to_app | PASSED | 6.23s |
| tests.login.test_auth0_login_flow | test_protected_route_redirects_to_login | PASSED | 0.86s |
| tests.login.test_auth0_login_flow | test_home_page_shows_sign_in_button | PASSED | 1.06s |
| tests.login.test_auth0_login_flow | test_sign_in_navigates_to_login_form | PASSED | 1.15s |
| tests.login.test_auth0_login_flow | test_successful_login_lands_on_dashboard | PASSED | 9.89s |
| tests.login.test_auth0_login_flow | test_logout_returns_to_home | PASSED | 2.01s |
| tests.login.test_new_users_login | test_teacher_full_login_verification[chromium-aio.pool.teacher1@eruditiontx.com] | PASSED | 30.02s |
| tests.login.test_new_users_login | test_teacher_full_login_verification[chromium-aio.pool.teacher2@eruditiontx.com] | PASSED | 3.92s |
| tests.login.test_new_users_login | test_teacher_full_login_verification[chromium-aio.pool.teacher3@eruditiontx.com] | PASSED | 3.15s |
| tests.login.test_new_users_login | test_teacher_full_login_verification[chromium-aio.pool.teacher4@eruditiontx.com] | PASSED | 5.77s |
| tests.login.test_new_users_login | test_teacher_full_login_verification[chromium-aio.pool.teacher5@eruditiontx.com] | PASSED | 2.99s |
| tests.login.test_new_users_login | test_student_full_login_verification[chromium-aio.pool.student1@eruditiontx.com] | PASSED | 10.74s |
| tests.login.test_new_users_login | test_student_full_login_verification[chromium-aio.pool.student2@eruditiontx.com] | PASSED | 33.36s |
| tests.login.test_new_users_login | test_student_full_login_verification[chromium-aio.pool.student3@eruditiontx.com] | PASSED | 11.92s |
| tests.login.test_new_users_login | test_student_full_login_verification[chromium-aio.pool.student4@eruditiontx.com] | PASSED | 13.45s |
| tests.login.test_new_users_login | test_student_full_login_verification[chromium-aio.pool.student5@eruditiontx.com] | PASSED | 6.00s |
| tests.login.test_session_survives_access_token_expiry | test_in_app_navigation_recovers_without_a_full_page_load | PASSED | 31.01s |
| tests.login.test_session_survives_access_token_expiry | test_a_full_page_load_recovers_instead_of_signing_the_student_out | PASSED | 2.43s |
| tests.login.test_session_survives_access_token_expiry | test_the_session_still_works_after_the_silent_refresh | PASSED | 3.31s |
| tests.login.test_teacher_auth0_login | test_login_page_loads_correctly | PASSED | 0.99s |
| tests.login.test_teacher_auth0_login | test_sign_in_button_navigates_to_login_form | PASSED | 1.09s |
| tests.login.test_teacher_auth0_login | test_valid_credentials_redirect_back_to_app | PASSED | 1.84s |
| tests.login.test_teacher_auth0_login | test_authenticated_user_lands_on_teacher_page | PASSED | 2.97s |
| tests.login.test_teacher_auth0_login | test_authenticated_page_has_main_content | PASSED | 10.37s |
student| Class | Test | Status | Duration |
|---|---|---|---|
| tests.student.test_EI_1101_student_multiple_attempts | test_EI_TC_1101_A_positive_second_attempt_does_not_show_previous_answer | PASSED | 45.05s |
| tests.student.test_EI_1101_student_multiple_attempts | test_EI_TC_1101_B_positive_latest_attempt_grade_is_reflected_not_first_or_highest | PASSED | 20.61s |
| tests.student.test_EI_1172_single_dnd_assignment_player | test_EI_1172_single_dnd_assignment_player_renders_without_crash | PASSED | 35.52s |
| tests.student.test_EI_1172_single_dnd_assignment_player | test_EI_1172_single_dnd_student_can_drag_choice_into_blank | PASSED | 4.55s |
| tests.student.test_EI_1205_bug_student_view_submission_after_attempts_used | test_EI_1205_negative_view_submission_after_attempts_used_no_crash | PASSED | 1m 39s |
| tests.student.test_EI_1320_view_assignment_list | test_EI_1320_positive_student_views_assignment_list | PASSED | 1m 24s |
| tests.student.test_EI_141_assignment_submission_page | test_EI_TC_141_positive_student_views_assignment_submission_details | PASSED | 1m 56s |