discourse/spec/models/user_notification_schedule_spec.rb
Osama Sayegh 45ccadeeeb
DEV: Upgrade Rails to 6.1.3.1 (#12688)
Rails 6.1.3.1 deprecates a few API and has some internal changes that break our tests suite, so this commit fixes all the deprecations and errors and now Discourse should be fully compatible with Rails 6.1.3.1. We also have a new release of the rails_failover gem that's compatible with Rails 6.1.3.1.
2021-04-21 12:36:32 +03:00

64 lines
1.8 KiB
Ruby

# frozen_string_literal: true
require 'rails_helper'
describe UserNotificationSchedule do
fab!(:user) { Fabricate(:user) }
describe "validations" do
it 'is invalid when no times are specified' do
schedule = UserNotificationSchedule.create({
user: user,
enabled: true
})
expect(schedule.errors.attribute_names).to eq([
:day_0_start_time,
:day_0_end_time,
:day_1_start_time,
:day_1_end_time,
:day_2_start_time,
:day_2_end_time,
:day_3_start_time,
:day_3_end_time,
:day_4_start_time,
:day_4_end_time,
:day_5_start_time,
:day_5_end_time,
:day_6_start_time,
:day_6_end_time,
])
end
it 'is invalid when a start time is below -1' do
schedule = UserNotificationSchedule.new({
user: user,
}.merge(UserNotificationSchedule::DEFAULT))
schedule.day_0_start_time = -2
schedule.save
expect(schedule.errors.count).to eq(1)
expect(schedule.errors[:day_0_start_time]).to be_present
end
it 'invalid when an end time is greater than 1440' do
schedule = UserNotificationSchedule.new({
user: user,
}.merge(UserNotificationSchedule::DEFAULT))
schedule.day_0_end_time = 1441
schedule.save
expect(schedule.errors.count).to eq(1)
expect(schedule.errors[:day_0_end_time]).to be_present
end
it 'invalid when the start time is greater than the end time' do
schedule = UserNotificationSchedule.new({
user: user,
}.merge(UserNotificationSchedule::DEFAULT))
schedule.day_0_start_time = 1000
schedule.day_0_end_time = 800
schedule.save
expect(schedule.errors.count).to eq(1)
expect(schedule.errors[:day_0_start_time]).to be_present
end
end
end