chore: init commit
in worker.../repo/GITFOLDER.zip is the .git folder.
This commit is contained in:
@@ -0,0 +1,76 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
require "test_helper"
|
||||
|
||||
class GradeTest < ActiveSupport::TestCase
|
||||
test "factory" do
|
||||
assert build(:grade).validate!
|
||||
end
|
||||
|
||||
test "has many classroom_grades" do
|
||||
grade = create(:grade)
|
||||
cg1 = create(:classroom_grade, grade: grade)
|
||||
cg2 = create(:classroom_grade, grade: grade)
|
||||
|
||||
assert_equal 2, grade.classroom_grades.count
|
||||
assert_includes grade.classroom_grades, cg1
|
||||
assert_includes grade.classroom_grades, cg2
|
||||
end
|
||||
|
||||
test "has many classrooms through classroom_grades" do
|
||||
grade = create(:grade)
|
||||
classroom1 = create(:classroom)
|
||||
classroom2 = create(:classroom)
|
||||
create(:classroom_grade, grade: grade, classroom: classroom1)
|
||||
create(:classroom_grade, grade: grade, classroom: classroom2)
|
||||
|
||||
assert_equal 2, grade.classrooms.count
|
||||
assert_includes grade.classrooms, classroom1
|
||||
assert_includes grade.classrooms, classroom2
|
||||
end
|
||||
|
||||
test "can destroy a grade with no classrooms" do
|
||||
grade = create(:grade)
|
||||
|
||||
assert_difference "Grade.count", -1 do
|
||||
grade.destroy
|
||||
end
|
||||
end
|
||||
|
||||
test "cannot destroy a grade that is used by classrooms" do
|
||||
grade = create(:grade)
|
||||
create(:classroom_grade, grade: grade)
|
||||
|
||||
assert_not grade.destroy
|
||||
assert grade.errors.any?
|
||||
assert_includes grade.errors[:base], "Cannot delete record because dependent classroom grades exist"
|
||||
end
|
||||
|
||||
test "name must be present" do
|
||||
grade = build(:grade, name: nil)
|
||||
assert_not grade.valid?
|
||||
assert_includes grade.errors[:name], "can't be blank"
|
||||
end
|
||||
|
||||
test "level must be present" do
|
||||
grade = build(:grade, level: nil)
|
||||
assert_not grade.valid?
|
||||
assert_includes grade.errors[:level], "can't be blank"
|
||||
end
|
||||
|
||||
test "name is unique and case-insensitively" do
|
||||
create(:grade, name: "5th Grade", level: 6)
|
||||
|
||||
duplicate = build(:grade, name: "5TH grade", level: 6)
|
||||
assert_not duplicate.valid?
|
||||
assert_includes duplicate.errors[:name], "has already been taken"
|
||||
end
|
||||
|
||||
test "level is unique" do
|
||||
create(:grade, name: "5th Grade", level: 6)
|
||||
|
||||
duplicate = build(:grade, name: "5th Grade", level: 6)
|
||||
assert_not duplicate.valid?
|
||||
assert_includes duplicate.errors[:level], "has already been taken"
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user