52 lines
1.4 KiB
Ruby
52 lines
1.4 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
require "test_helper"
|
|
|
|
class YearTest < ActiveSupport::TestCase
|
|
test "factory" do
|
|
assert build(:year).validate!
|
|
end
|
|
|
|
test "year presence" do
|
|
year = build(:year, name: nil)
|
|
|
|
assert_not year.valid?
|
|
assert year.errors.added?(:name, :blank)
|
|
end
|
|
|
|
test "year uniqueness" do
|
|
duplicate_year = "2025 - 2026"
|
|
create(:year, name: duplicate_year)
|
|
year = build(:year, name: duplicate_year)
|
|
|
|
assert_not year.valid?
|
|
assert year.errors.added?(:name, :taken, value: duplicate_year)
|
|
end
|
|
|
|
test "previous_year and next_year" do
|
|
year2022_to2023 = create(:year, name: "2022 - 2023")
|
|
year2023_to2024 = create(:year, name: "2023 - 2024")
|
|
year2024_to2025 = create(:year, name: "2024 - 2025")
|
|
|
|
assert_nil year2022_to2023.previous_year
|
|
assert_equal year2023_to2024, year2022_to2023.next_year
|
|
|
|
assert_equal year2022_to2023, year2023_to2024.previous_year
|
|
assert_equal year2024_to2025, year2023_to2024.next_year
|
|
|
|
assert_equal year2023_to2024, year2024_to2025.previous_year
|
|
assert_nil year2024_to2025.next_year
|
|
end
|
|
|
|
test "current_school_year" do
|
|
create(:year, name: "2025 - 2026")
|
|
create(:year, name: "2026 - 2027")
|
|
|
|
feb_date = Date.new(2026, 2, 28)
|
|
assert_equal "2025 - 2026", Year.current_school_year(feb_date).first.name
|
|
|
|
sep_date = Date.new(2026, 9, 1)
|
|
assert_equal "2026 - 2027", Year.current_school_year(sep_date).first.name
|
|
end
|
|
end
|