Files
project-work/worker-toolkit-stocks-in-the-future/repo/test/models/teacher_classroom_test.rb
Eric Bell 2854619bc9 chore: init commit
in worker.../repo/GITFOLDER.zip is the .git folder.
2026-08-11 14:44:09 -04:00

60 lines
1.8 KiB
Ruby

# frozen_string_literal: true
require "test_helper"
class TeacherClassroomTest < ActiveSupport::TestCase
test "valid teacher_classroom" do
teacher = create(:teacher)
classroom = create(:classroom)
teacher_classroom = TeacherClassroom.new(teacher: teacher, classroom: classroom)
assert teacher_classroom.valid?
end
test "requires teacher" do
classroom = create(:classroom)
teacher_classroom = TeacherClassroom.new(classroom: classroom)
assert_not teacher_classroom.valid?
assert_includes teacher_classroom.errors[:teacher], "must exist"
end
test "requires classroom" do
teacher = create(:teacher)
teacher_classroom = TeacherClassroom.new(teacher: teacher)
assert_not teacher_classroom.valid?
assert_includes teacher_classroom.errors[:classroom], "must exist"
end
test "validates uniqueness of teacher_id scoped to classroom_id" do
teacher = create(:teacher)
classroom = create(:classroom)
TeacherClassroom.create!(teacher: teacher, classroom: classroom)
duplicate = TeacherClassroom.new(teacher: teacher, classroom: classroom)
assert_not duplicate.valid?
assert_includes duplicate.errors[:teacher_id], "has already been taken"
end
test "allows same teacher in different classrooms" do
teacher = create(:teacher)
classroom1 = create(:classroom)
classroom2 = create(:classroom)
assert TeacherClassroom.create(teacher: teacher, classroom: classroom1)
assert TeacherClassroom.create(teacher: teacher, classroom: classroom2)
end
test "allows different teachers in same classroom" do
teacher1 = create(:teacher)
teacher2 = create(:teacher)
classroom = create(:classroom)
assert TeacherClassroom.create(teacher: teacher1, classroom: classroom)
assert TeacherClassroom.create(teacher: teacher2, classroom: classroom)
end
end