diff options
author | Dmitry Samuylov <dsamuylov@pharo.com> | 2018-08-29 18:44:00 -0400 |
---|---|---|
committer | Elias Nahum <nahumhbl@gmail.com> | 2018-08-29 19:44:00 -0300 |
commit | effa9d33fcbbab27f69a4c59356a84f925d41baf (patch) | |
tree | 2d68627c0d364f3506cde3a4347907b9b7ed1755 | |
parent | e742ba7d517c38534fbd4bb964accfb8f18c7841 (diff) | |
download | chat-effa9d33fcbbab27f69a4c59356a84f925d41baf.tar.gz chat-effa9d33fcbbab27f69a4c59356a84f925d41baf.tar.bz2 chat-effa9d33fcbbab27f69a4c59356a84f925d41baf.zip |
bug fix: after and before search flags should not be inclusive of the selected date (#9327)
* fix for date based flag support to make the after and before flags not inclusive of the selected date
* updated search posts tests using date flags to take into account new non inclusive of the selected date behavior of those flags
-rw-r--r-- | api4/post_test.go | 11 | ||||
-rw-r--r-- | model/search_params.go | 11 |
2 files changed, 17 insertions, 5 deletions
diff --git a/api4/post_test.go b/api4/post_test.go index 5f8cb5b31..c428d3ab2 100644 --- a/api4/post_test.go +++ b/api4/post_test.go @@ -1581,19 +1581,24 @@ func TestSearchPostsWithDateFlags(t *testing.T) { resultCount = resultCount + 1 } } - if resultCount != 3 { + if resultCount != 2 { t.Fatalf("wrong number of posts returned %v", len(posts.Order)) } posts, _ = Client.SearchPosts(th.BasicTeam.Id, "before:2018-08-02", false) - if len(posts.Order) != 2 { + if len(posts.Order) != 1 { t.Fatalf("wrong number of posts returned %v", len(posts.Order)) } posts, _ = Client.SearchPosts(th.BasicTeam.Id, "before:2018-08-03 after:2018-08-02", false) - if len(posts.Order) != 2 { + if len(posts.Order) != 0 { t.Fatalf("wrong number of posts returned %v", len(posts.Order)) } + + posts, _ = Client.SearchPosts(th.BasicTeam.Id, "before:2018-08-03 after:2018-08-01", false) + if len(posts.Order) != 1 { + t.Fatalf("wrong number of posts returned %v", len(posts.Order)) + } } func TestGetFileInfosForPost(t *testing.T) { diff --git a/model/search_params.go b/model/search_params.go index 8ed1fccfb..b5600ee5a 100644 --- a/model/search_params.go +++ b/model/search_params.go @@ -6,6 +6,7 @@ package model import ( "regexp" "strings" + "time" ) var searchTermPuncStart = regexp.MustCompile(`^[^\pL\d\s#"]+`) @@ -27,13 +28,19 @@ type SearchParams struct { // Returns the epoch timestamp of the start of the day specified by SearchParams.AfterDate func (p *SearchParams) GetAfterDateMillis() int64 { date := ParseDateFilterToTime(p.AfterDate) - return GetStartOfDayMillis(date, p.TimeZoneOffset) + // travel forward 1 day + oneDay := time.Hour * 24 + afterDate := date.Add(oneDay) + return GetStartOfDayMillis(afterDate, p.TimeZoneOffset) } // Returns the epoch timestamp of the end of the day specified by SearchParams.BeforeDate func (p *SearchParams) GetBeforeDateMillis() int64 { date := ParseDateFilterToTime(p.BeforeDate) - return GetEndOfDayMillis(date, p.TimeZoneOffset) + // travel back 1 day + oneDay := time.Hour * -24 + beforeDate := date.Add(oneDay) + return GetEndOfDayMillis(beforeDate, p.TimeZoneOffset) } // Returns the epoch timestamps of the start and end of the day specified by SearchParams.OnDate |