github.com/quickfeed/quickfeed@v0.0.0-20240507093252-ed8ca812a09c/qf/task_test.go (about) 1 package qf_test 2 3 import ( 4 "testing" 5 6 "github.com/google/go-cmp/cmp" 7 "github.com/quickfeed/quickfeed/qf" 8 "google.golang.org/protobuf/testing/protocmp" 9 ) 10 11 // TestHasChanged tests if HasChanged returns the correct value 12 func TestHasChanged(t *testing.T) { 13 tests := map[string]struct { 14 task1, task2 *qf.Task 15 want bool 16 }{ 17 "No change": {task1: &qf.Task{Title: "Title 1", Body: "Body 1"}, task2: &qf.Task{Title: "Title 1", Body: "Body 1"}, want: false}, 18 "Body change": {task1: &qf.Task{Title: "Title 1", Body: "Body 1"}, task2: &qf.Task{Title: "Title 1", Body: "Body 2"}, want: true}, 19 "Title change": {task1: &qf.Task{Title: "Title 1", Body: "Body 1"}, task2: &qf.Task{Title: "Title 2", Body: "Body 1"}, want: true}, 20 "Body and title change": {task1: &qf.Task{Title: "Title 1", Body: "Body 1"}, task2: &qf.Task{Title: "Title 2", Body: "Body 2"}, want: true}, 21 } 22 23 for name, tt := range tests { 24 t.Run(name, func(t *testing.T) { 25 if got := tt.task1.HasChanged(tt.task2); tt.want != got { 26 t.Errorf("\ntask1.HasChanged(task2) = %t, expected %t\ntask1:\t%v\ntask2:\t%v", got, tt.want, tt.task1, tt.task2) 27 } 28 }) 29 } 30 } 31 32 func TestMarkDeleted(t *testing.T) { 33 const deleteMsg = "\n**The task associated with this issue has been deleted by the teaching staff.**\n" 34 35 tests := map[string]struct { 36 task *qf.Task 37 wantTask *qf.Task 38 deleted bool 39 }{ 40 "Delete task": { 41 task: &qf.Task{Title: "Title 1", Body: "Body 1"}, 42 wantTask: &qf.Task{Title: "DELETED Title 1", Body: deleteMsg + "Body 1"}, 43 deleted: true, 44 }, 45 } 46 for name, tt := range tests { 47 t.Run(name, func(t *testing.T) { 48 gotTask := tt.task 49 gotTask.MarkDeleted() 50 if diff := cmp.Diff(tt.wantTask, gotTask, protocmp.Transform()); diff != "" { 51 t.Errorf("MarkDeleted() mismatch (-wantTask +gotTask):\n%s", diff) 52 } 53 if got := gotTask.IsDeleted(); got != tt.deleted { 54 t.Errorf("IsDeleted() = %t, expected %t", got, tt.deleted) 55 } 56 }) 57 } 58 }