chore: init commit

in worker.../repo/GITFOLDER.zip is the .git folder.
This commit is contained in:
2026-08-11 14:44:09 -04:00
parent 0012380fd3
commit 2854619bc9
782 changed files with 65944 additions and 0 deletions

View File

@@ -0,0 +1,204 @@
# frozen_string_literal: true
require "application_system_test_case"
class GradeBooksTest < ApplicationSystemTestCase
test "teacher updates grade book entries" do
classroom = create(:classroom)
grade_book = create(:grade_book, classroom:)
student1 = create(:student, classroom:)
student2 = create(:student, classroom:)
student1_entry = create(:grade_entry, grade_book:, user: student1)
student2_entry = create(:grade_entry, grade_book:, user: student2)
teacher = create(:teacher)
create(:teacher_classroom, teacher:, classroom:)
sign_in(teacher)
visit classroom_grade_book_path(classroom, grade_book)
within("##{dom_id(student1_entry)}") do
find("[data-testid='math-grade-select']").select("A")
find("[data-testid='reading-grade-select']").select("B+")
find("[data-testid='attendance-days-input']").set(95)
end
within("##{dom_id(student2_entry)}") do
find("[data-testid='math-grade-select']").select("B")
find("[data-testid='reading-grade-select']").select("A")
find("[data-testid='attendance-days-input']").set(87)
end
click_on "Save Grades"
within("##{dom_id(student1_entry)}") do
assert_equal "A", find("[data-testid='math-grade-select']").value
assert_equal "B+", find("[data-testid='reading-grade-select']").value
assert_equal "95", find("[data-testid='attendance-days-input']").value
end
within("##{dom_id(student2_entry)}") do
assert_equal "B", find("[data-testid='math-grade-select']").value
assert_equal "A", find("[data-testid='reading-grade-select']").value
assert_equal "87", find("[data-testid='attendance-days-input']").value
end
end
test "admin sees success message when finalizing grade book" do
DistributeEarnings.stubs(:execute)
classroom = create(:classroom)
grade_book = create(:grade_book, classroom:)
student1 = create(:student, classroom:)
student2 = create(:student, classroom:)
create(:grade_entry, grade_book:, user: student1)
create(:grade_entry, grade_book:, user: student2)
admin = create(:admin)
sign_in(admin)
visit classroom_grade_book_path(classroom, grade_book)
assert_button "Finalize Grades"
accept_confirm do
click_on "Finalize Grades"
end
assert_selector(
"#notice",
text: "Grade book finalized. Funds have been distributed."
)
end
test "teacher enters grades for multiple students" do
classroom = create(:classroom)
grade_book = create(:grade_book, classroom:)
student1 = create(:student, classroom:)
student2 = create(:student, classroom:)
student1_entry = create(:grade_entry, grade_book:, user: student1)
student2_entry = create(:grade_entry, grade_book:, user: student2)
teacher = create(:teacher)
create(:teacher_classroom, teacher:, classroom:)
sign_in(teacher)
visit classroom_grade_book_path(classroom, grade_book)
within("##{dom_id(student1_entry)}") do
find("[data-testid='math-grade-select']").select("A")
find("[data-testid='reading-grade-select']").select("B+")
find("[data-testid='attendance-days-input']").set(95)
end
within("##{dom_id(student2_entry)}") do
find("[data-testid='math-grade-select']").select("B")
find("[data-testid='reading-grade-select']").select("A")
find("[data-testid='attendance-days-input']").set(87)
end
click_on "Save Grades"
within("##{dom_id(student1_entry)}") do
assert_equal "A", find("[data-testid='math-grade-select']").value
assert_equal "B+", find("[data-testid='reading-grade-select']").value
end
within("##{dom_id(student2_entry)}") do
assert_equal "B", find("[data-testid='math-grade-select']").value
assert_equal "A", find("[data-testid='reading-grade-select']").value
end
end
test "teacher updates previously entered grades" do
classroom = create(:classroom)
grade_book = create(:grade_book, classroom:)
student_entry = create(:grade_entry, grade_book:)
teacher = create(:teacher)
create(:teacher_classroom, teacher:, classroom:)
sign_in(teacher)
visit classroom_grade_book_path(classroom, grade_book)
within("##{dom_id(student_entry)}") do
find("[data-testid='math-grade-select']").select("A")
find("[data-testid='reading-grade-select']").select("B+")
find("[data-testid='attendance-days-input']").set(25)
end
click_on "Save Grades"
within("##{dom_id(student_entry)}") do
assert_equal "A", find("[data-testid='math-grade-select']").value
assert_equal "B+", find("[data-testid='reading-grade-select']").value
end
end
test "teacher marks student with perfect attendance" do
classroom = create(:classroom)
grade_book = create(:grade_book, classroom:)
student = create(:student, classroom:)
student_entry = create(:grade_entry, grade_book:, user: student)
teacher = create(:teacher)
create(:teacher_classroom, teacher:, classroom:)
sign_in(teacher)
visit classroom_grade_book_path(classroom, grade_book)
within("##{dom_id(student_entry)}") do
find("[data-testid='math-grade-select']").select("A")
find("[data-testid='reading-grade-select']").select("A")
find("[data-testid='attendance-days-input']").set(90)
find("[data-testid='perfect-attendance-checkbox']").check
end
click_on "Save Grades"
within("##{dom_id(student_entry)}") do
assert find("[data-testid='perfect-attendance-checkbox']").checked?
end
end
test "teacher can view but cannot finalize grade book" do
classroom = create(:classroom)
grade_book = create(:grade_book, classroom:)
student1 = create(:student, classroom:)
student2 = create(:student, classroom:)
student1_entry = create(:grade_entry, grade_book:, user: student1)
student2_entry = create(:grade_entry, grade_book:, user: student2)
teacher = create(:teacher)
create(:teacher_classroom, teacher:, classroom:)
sign_in(teacher)
visit classroom_grade_book_path(classroom, grade_book)
assert_selector "##{dom_id(student1_entry)}"
assert_selector "##{dom_id(student2_entry)}"
assert_no_text "Finalize Grades"
end
test "teacher cannot view grade books from other classrooms" do
classroom = create(:classroom)
teacher = create(:teacher)
create(:teacher_classroom, teacher:, classroom:)
other_classroom = create(:classroom)
other_grade_book = create(:grade_book, classroom: other_classroom)
sign_in(teacher)
visit classroom_grade_book_path(other_classroom, other_grade_book)
assert_current_path root_path
end
test "grade book displays validation for attendance input" do
classroom = create(:classroom)
grade_book = create(:grade_book, classroom:)
student = create(:student, classroom:)
student_entry = create(:grade_entry, grade_book:, user: student)
teacher = create(:teacher)
create(:teacher_classroom, teacher:, classroom:)
sign_in(teacher)
visit classroom_grade_book_path(classroom, grade_book)
within("##{dom_id(student_entry)}") do
assert_selector "input[type='number'][min='0']"
end
end
test "teacher cannot edit finalized grade book" do
classroom = create(:classroom)
grade_book = create(:grade_book, classroom:, status: :completed)
create(:grade_entry, grade_book:)
create(:grade_entry, grade_book:)
teacher = create(:teacher)
create(:teacher_classroom, teacher:, classroom:)
sign_in(teacher)
visit classroom_grade_book_path(classroom, grade_book)
assert_selector "select[disabled]", count: 4
assert_selector "input[type='number'][disabled]", count: 2
assert_selector "input[type='checkbox'][disabled]", count: 2
assert_no_button "Save Grades"
end
end