|
@@ -34,6 +34,74 @@ func TestValidateEntriesStatusUpdateRequest(t *testing.T) {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+func TestValidateEntriesStatusAndStarredUpdateRequest(t *testing.T) {
|
|
|
|
|
+ err := ValidateEntriesStatusAndStarredUpdateRequest(&model.EntriesStatusUpdateRequest{
|
|
|
|
|
+ Status: model.EntryStatusRead,
|
|
|
|
|
+ EntryIDs: []int64{int64(123), int64(456)},
|
|
|
|
|
+ })
|
|
|
|
|
+ if err != nil {
|
|
|
|
|
+ t.Error(`A valid request should not be rejected`)
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ err = ValidateEntriesStatusAndStarredUpdateRequest(&model.EntriesStatusUpdateRequest{
|
|
|
|
|
+ Status: model.EntryStatusRead,
|
|
|
|
|
+ })
|
|
|
|
|
+ if err == nil {
|
|
|
|
|
+ t.Error(`An empty list of entries is not valid`)
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ err = ValidateEntriesStatusAndStarredUpdateRequest(&model.EntriesStatusUpdateRequest{
|
|
|
|
|
+ Status: "invalid",
|
|
|
|
|
+ EntryIDs: []int64{int64(123)},
|
|
|
|
|
+ })
|
|
|
|
|
+ if err == nil {
|
|
|
|
|
+ t.Error(`Only a valid status should be accepted`)
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ starred := true
|
|
|
|
|
+ err = ValidateEntriesStatusAndStarredUpdateRequest(&model.EntriesStatusUpdateRequest{
|
|
|
|
|
+ Starred: &starred,
|
|
|
|
|
+ EntryIDs: []int64{int64(123)},
|
|
|
|
|
+ })
|
|
|
|
|
+ if err != nil {
|
|
|
|
|
+ t.Error(`A request with only the starred field should be accepted`)
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ notStarred := false
|
|
|
|
|
+ err = ValidateEntriesStatusAndStarredUpdateRequest(&model.EntriesStatusUpdateRequest{
|
|
|
|
|
+ Starred: ¬Starred,
|
|
|
|
|
+ EntryIDs: []int64{int64(123)},
|
|
|
|
|
+ })
|
|
|
|
|
+ if err != nil {
|
|
|
|
|
+ t.Error(`A request with starred set to false should be accepted`)
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ err = ValidateEntriesStatusAndStarredUpdateRequest(&model.EntriesStatusUpdateRequest{
|
|
|
|
|
+ Status: model.EntryStatusRead,
|
|
|
|
|
+ Starred: &starred,
|
|
|
|
|
+ EntryIDs: []int64{int64(123)},
|
|
|
|
|
+ })
|
|
|
|
|
+ if err != nil {
|
|
|
|
|
+ t.Error(`A request with both status and starred should be accepted`)
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ err = ValidateEntriesStatusAndStarredUpdateRequest(&model.EntriesStatusUpdateRequest{
|
|
|
|
|
+ EntryIDs: []int64{int64(123)},
|
|
|
|
|
+ })
|
|
|
|
|
+ if err == nil {
|
|
|
|
|
+ t.Error(`A request without status or starred should be rejected`)
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ err = ValidateEntriesStatusAndStarredUpdateRequest(&model.EntriesStatusUpdateRequest{
|
|
|
|
|
+ Status: "invalid",
|
|
|
|
|
+ Starred: &starred,
|
|
|
|
|
+ EntryIDs: []int64{int64(123)},
|
|
|
|
|
+ })
|
|
|
|
|
+ if err == nil {
|
|
|
|
|
+ t.Error(`An invalid status should be rejected even when starred is specified`)
|
|
|
|
|
+ }
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
func TestValidateEntryStatus(t *testing.T) {
|
|
func TestValidateEntryStatus(t *testing.T) {
|
|
|
for _, status := range []string{model.EntryStatusRead, model.EntryStatusUnread} {
|
|
for _, status := range []string{model.EntryStatusRead, model.EntryStatusUnread} {
|
|
|
if err := ValidateEntryStatus(status); err != nil {
|
|
if err := ValidateEntryStatus(status); err != nil {
|