43 lines
1.1 KiB
Ruby
43 lines
1.1 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
require "test_helper"
|
|
|
|
class ClassroomGradeTest < ActiveSupport::TestCase
|
|
test "factory" do
|
|
assert build(:classroom_grade).validate!
|
|
end
|
|
|
|
test "belongs to classroom" do
|
|
classroom = create(:classroom)
|
|
cg = create(:classroom_grade, classroom: classroom)
|
|
|
|
assert_equal classroom, cg.classroom
|
|
end
|
|
|
|
test "belongs to grade" do
|
|
grade = create(:grade)
|
|
cg = create(:classroom_grade, grade: grade)
|
|
|
|
assert_equal grade, cg.grade
|
|
end
|
|
|
|
test "validates uniqueness of grade scoped to classroom" do
|
|
classroom = create(:classroom)
|
|
grade = create(:grade)
|
|
create(:classroom_grade, classroom: classroom, grade: grade)
|
|
|
|
duplicate = build(:classroom_grade, classroom: classroom, grade: grade)
|
|
assert_not duplicate.valid?
|
|
assert_includes duplicate.errors[:grade_id], "has already been taken"
|
|
end
|
|
|
|
test "destroying classroom destroys classroom_grade" do
|
|
classroom = create(:classroom)
|
|
create(:classroom_grade, classroom: classroom)
|
|
|
|
assert_difference "ClassroomGrade.count", -2 do
|
|
classroom.destroy
|
|
end
|
|
end
|
|
end
|