mirror of
https://github.com/TracksApp/tracks.git
synced 2025-12-24 03:00:12 +01:00
add some more tests
This commit is contained in:
parent
b23338eaa2
commit
5de96d7eda
8 changed files with 281 additions and 65 deletions
|
|
@ -9,6 +9,93 @@ module RecurringTodos
|
|||
@admin = users(:admin_user)
|
||||
end
|
||||
|
||||
def test_pattern_builds_from_existing_recurring_todo
|
||||
rt = @admin.recurring_todos.first
|
||||
|
||||
pattern = rt.pattern
|
||||
assert pattern.is_a?(DailyRepeatPattern), "recurring todo should have daily pattern"
|
||||
end
|
||||
|
||||
def test_validation_on_due_date
|
||||
attributes = {
|
||||
'recurring_period' => 'weekly',
|
||||
'recurring_target' => 'due_date',
|
||||
'description' => 'a repeating todo', # generic
|
||||
'weekly_return_monday' => 'm', # weekly specific
|
||||
'ends_on' => 'ends_on_end_date',
|
||||
'end_date' => Time.zone.now + 1.week,
|
||||
'context_id' => @admin.contexts.first.id,
|
||||
'start_from' => Time.zone.now - 1.week,
|
||||
'weekly_every_x_week' => 1,
|
||||
}
|
||||
|
||||
pattern = create_pattern(attributes)
|
||||
assert !pattern.valid?, "should fail because show_always and show_from_delta are not there"
|
||||
|
||||
attributes['recurring_show_always'] = false
|
||||
pattern = create_pattern(attributes)
|
||||
assert !pattern.valid?, "should fail because show_from_delta is not there"
|
||||
|
||||
attributes[:recurring_show_days_before] = 5
|
||||
pattern = create_pattern(attributes)
|
||||
assert pattern.valid?, "should be valid:" + pattern.errors.full_messages.to_s
|
||||
end
|
||||
|
||||
def test_validation_on_start_date
|
||||
attributes = {
|
||||
'recurring_period' => 'weekly',
|
||||
'recurring_target' => 'due_date',
|
||||
'description' => 'a repeating todo', # generic
|
||||
'weekly_return_monday' => 'm', # weekly specific
|
||||
'ends_on' => 'ends_on_end_date',
|
||||
'context_id' => @admin.contexts.first.id,
|
||||
'end_date' => Time.zone.now + 1.week,
|
||||
'weekly_every_x_week' => 1,
|
||||
'recurring_show_always' => false,
|
||||
'recurring_show_days_before' => 5,
|
||||
}
|
||||
pattern = create_pattern(attributes)
|
||||
assert !pattern.valid?, "should be not valid because start_from is empty"
|
||||
|
||||
attributes['start_from'] = Time.zone.now - 1.week
|
||||
pattern = create_pattern(attributes)
|
||||
assert pattern.valid?, "should be valid: " + pattern.errors.full_messages.to_s
|
||||
end
|
||||
|
||||
def test_validation_on_end_date
|
||||
attributes = {
|
||||
'recurring_period' => 'weekly',
|
||||
'recurring_target' => 'due_date',
|
||||
'description' => 'a repeating todo', # generic
|
||||
'weekly_return_monday' => 'm', # weekly specific
|
||||
'ends_on' => 'invalid_value',
|
||||
'context_id' => @admin.contexts.first.id,
|
||||
'start_from' => Time.zone.now - 1.week,
|
||||
'weekly_every_x_week' => 1,
|
||||
'recurring_show_always' => false,
|
||||
'recurring_show_days_before' => 5,
|
||||
}
|
||||
|
||||
pattern = create_pattern(attributes)
|
||||
assert !pattern.valid?
|
||||
|
||||
attributes['ends_on']='ends_on_end_date'
|
||||
pattern = create_pattern(attributes)
|
||||
assert !pattern.valid?, "should not be valid, because end_date is not supplied"
|
||||
|
||||
attributes['end_date']= Time.zone.now + 1.week
|
||||
pattern = create_pattern(attributes)
|
||||
assert pattern.valid?, "should be valid"
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def create_pattern(attributes)
|
||||
builder = RecurringTodosBuilder.new(@admin, attributes)
|
||||
builder.build
|
||||
builder.pattern
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
end
|
||||
Loading…
Add table
Add a link
Reference in a new issue