mirror of
https://github.com/TracksApp/tracks.git
synced 2025-09-22 05:50:47 +02:00
add basis tests for patterns and remove doubles from recurring_todo_test.rb
This commit is contained in:
parent
a7807a4b66
commit
cbdbb792a5
9 changed files with 212 additions and 111 deletions
|
@ -320,109 +320,4 @@ class RecurringTodoTest < ActiveSupport::TestCase
|
|||
assert_equal true, @every_day.continues_recurring?(@in_three_days)
|
||||
assert_equal 0, @every_day.occurences_count
|
||||
end
|
||||
|
||||
def test_invalid_recurring_period_will_not_save
|
||||
@every_day.recurring_period = 'invalid'
|
||||
assert !@every_day.valid?
|
||||
|
||||
@every_month.recurrence_selector = 99
|
||||
assert_raise(Exception){ @every_month.valid? }
|
||||
|
||||
@yearly.recurrence_selector = 99
|
||||
assert_raise(RuntimeError){ @yearly.valid? }
|
||||
end
|
||||
|
||||
def test_every_n_the_day_must_be_filled
|
||||
@every_day.every_other1 = nil
|
||||
assert !@every_day.valid?
|
||||
end
|
||||
|
||||
def test_every_n_week_must_be_filled
|
||||
@every_week.every_other1 = nil
|
||||
assert !@every_week.valid?
|
||||
end
|
||||
|
||||
def test_every_n_month_must_be_filled
|
||||
@every_month.every_other1 = nil
|
||||
@every_month.every_other2 = nil
|
||||
assert !@every_month.valid?
|
||||
|
||||
@every_month.recurrence_selector = 0
|
||||
assert !@every_month.valid?
|
||||
end
|
||||
|
||||
def test_set_every_n_days_from_form_input
|
||||
builder = RecurringTodos::RecurringTodosBuilder.new(users(:admin_user), {
|
||||
:description => "Task every 2 days",
|
||||
:context_id => Context.first.id,
|
||||
:recurring_target => "show_from_date",
|
||||
:start_from => "01/01/01",
|
||||
:ends_on => "no_end_date",
|
||||
:recurring_period => "daily",
|
||||
:daily_selector => "daily_every_x_day",
|
||||
:daily_every_x_days => 2,
|
||||
})
|
||||
builder.save
|
||||
todo = builder.saved_recurring_todo
|
||||
|
||||
assert todo.valid?, todo.errors.full_messages
|
||||
assert_equal 2, todo.every_other1
|
||||
end
|
||||
|
||||
def test_set_every_n_weeks_from_form_input
|
||||
builder = RecurringTodos::RecurringTodosBuilder.new(users(:admin_user), {
|
||||
:description => "Task every 3 weeks",
|
||||
:context_id => Context.first.id,
|
||||
:recurring_target => "show_from_date",
|
||||
:start_from => "01/01/01",
|
||||
:ends_on => "no_end_date",
|
||||
:recurring_period => "weekly",
|
||||
:weekly_every_x_week => 3,
|
||||
:weekly_return_monday => "m",
|
||||
})
|
||||
builder.save
|
||||
todo = builder.saved_recurring_todo
|
||||
|
||||
assert todo.valid?, todo.errors.full_messages
|
||||
assert_equal 3, todo.every_other1
|
||||
assert todo.pattern.on_monday
|
||||
end
|
||||
|
||||
def test_set_every_n_months_from_form_input
|
||||
builder = RecurringTodos::RecurringTodosBuilder.new(users(:admin_user), {
|
||||
:description => "Task every 4 months",
|
||||
:context_id => Context.first.id,
|
||||
:recurring_target => "show_from_date",
|
||||
:start_from => "01/01/01",
|
||||
:ends_on => "no_end_date",
|
||||
:recurring_period => "monthly",
|
||||
:monthly_selector => "monthly_every_x_day",
|
||||
:monthly_every_x_day => 1,
|
||||
:monthly_every_x_month => 4,
|
||||
})
|
||||
builder.save
|
||||
todo = builder.saved_recurring_todo
|
||||
|
||||
assert todo.valid?, todo.errors.full_messages
|
||||
assert_equal 4, todo.every_other2
|
||||
end
|
||||
|
||||
def test_set_yearly_from_form_input
|
||||
builder = RecurringTodos::RecurringTodosBuilder.new(users(:admin_user), {
|
||||
:description => "Task every year in May",
|
||||
:context_id => Context.first.id,
|
||||
:recurring_target => "show_from_date",
|
||||
:start_from => "01/01/01",
|
||||
:ends_on => "no_end_date",
|
||||
:recurring_period => "yearly",
|
||||
:yearly_selector => "yearly_every_x_day",
|
||||
:yearly_every_x_day => 15,
|
||||
:yearly_month_of_year => 5,
|
||||
})
|
||||
builder.save
|
||||
todo = builder.saved_recurring_todo
|
||||
|
||||
assert todo.valid?, todo.errors.full_messages
|
||||
assert_equal 5, todo.every_other2
|
||||
end
|
||||
end
|
||||
end
|
Loading…
Add table
Add a link
Reference in a new issue