mirror of
https://github.com/TracksApp/tracks.git
synced 2025-09-21 21:40:48 +02:00
107 lines
3.2 KiB
Ruby
107 lines
3.2 KiB
Ruby
require 'date'
|
|
require 'active_support/core_ext/object/blank'
|
|
require_relative '../../app/services/rich_message_extractor.rb'
|
|
|
|
class RichMessageExtractorTest < Minitest::Test
|
|
|
|
def test_message_with_all_options
|
|
message = "ohai@some-context~this-project>131012<131014#tag1#tag2*"
|
|
extractor = RichMessageExtractor.new(message)
|
|
assert_equal "ohai", extractor.description
|
|
assert_equal "some-context", extractor.context
|
|
assert_equal "this-project", extractor.project
|
|
assert_equal Time.zone.parse("2013-10-12").utc.to_s, extractor.show_from.utc.to_s
|
|
assert_equal Time.zone.parse("2013-10-14").utc.to_s, extractor.due.utc.to_s
|
|
assert_equal ["tag1","tag2"], extractor.tags
|
|
assert extractor.starred?
|
|
end
|
|
|
|
def test_message_without_project
|
|
message = "ohai @ some-context"
|
|
extractor = RichMessageExtractor.new(message)
|
|
assert_equal "ohai", extractor.description
|
|
assert_equal "some-context", extractor.context
|
|
assert_nil extractor.project
|
|
end
|
|
|
|
def test_message_without_context
|
|
message = " ohai ~ some-project"
|
|
extractor = RichMessageExtractor.new(message)
|
|
assert_equal "ohai", extractor.description
|
|
assert_equal "", extractor.context
|
|
assert_equal "some-project", extractor.project
|
|
end
|
|
|
|
def test_message_without_project_or_context
|
|
message = "ohai"
|
|
extractor = RichMessageExtractor.new(message)
|
|
assert_equal "ohai", extractor.description
|
|
assert_equal "", extractor.context
|
|
assert_nil extractor.project
|
|
end
|
|
|
|
def test_message_without_anything
|
|
message = ""
|
|
extractor = RichMessageExtractor.new(message)
|
|
assert_equal "", extractor.description
|
|
assert_equal "", extractor.context
|
|
assert_nil extractor.project
|
|
end
|
|
|
|
def test_message_with_just_a_context
|
|
message = "@some-context"
|
|
extractor = RichMessageExtractor.new(message)
|
|
assert_equal "", extractor.description
|
|
assert_equal "some-context", extractor.context
|
|
assert_nil extractor.project
|
|
end
|
|
|
|
def test_message_with_tags
|
|
message = "some tags#tag 1#tag2"
|
|
extractor = RichMessageExtractor.new(message)
|
|
assert_equal ["tag 1","tag2"], extractor.tags
|
|
end
|
|
|
|
def test_message_with_no_tags
|
|
message = "no tags"
|
|
extractor = RichMessageExtractor.new(message)
|
|
assert_nil extractor.tags
|
|
end
|
|
|
|
def test_message_with_due_date
|
|
message = "datetest<141013"
|
|
extractor = RichMessageExtractor.new(message)
|
|
assert_equal Time.zone.parse("2014-10-13").utc.to_s, extractor.due.utc.to_s
|
|
end
|
|
|
|
def test_message_with_no_due_date
|
|
message = "no date"
|
|
extractor = RichMessageExtractor.new(message)
|
|
assert_nil extractor.due
|
|
end
|
|
|
|
def test_message_with_show_from
|
|
message = "datetest>161013"
|
|
extractor = RichMessageExtractor.new(message)
|
|
assert_equal Time.zone.parse("2016-10-13").utc.to_s, extractor.show_from.utc.to_s
|
|
end
|
|
|
|
def test_message_with_no_show_from
|
|
message = "no tickler"
|
|
extractor = RichMessageExtractor.new(message)
|
|
assert_nil extractor.show_from
|
|
end
|
|
|
|
def test_message_with_star
|
|
message = "star test*"
|
|
extractor = RichMessageExtractor.new(message)
|
|
assert extractor.starred?
|
|
end
|
|
|
|
def test_message_with_no_star
|
|
message = "no star test"
|
|
extractor = RichMessageExtractor.new(message)
|
|
refute extractor.starred?
|
|
end
|
|
|
|
end
|