github.com/drone/runner-go@v1.12.0/pipeline/reporter/history/entry_test.go (about) 1 // Copyright 2019 Drone.IO Inc. All rights reserved. 2 // Use of this source code is governed by the Polyform License 3 // that can be found in the LICENSE file. 4 5 package history 6 7 import ( 8 "sort" 9 "testing" 10 11 "github.com/drone/drone-go/drone" 12 13 "github.com/google/go-cmp/cmp" 14 ) 15 16 func TestSort(t *testing.T) { 17 before := []*Entry{ 18 {Stage: &drone.Stage{ID: 1, Status: drone.StatusPassing}}, 19 {Stage: &drone.Stage{ID: 2, Status: drone.StatusPassing}}, 20 {Stage: &drone.Stage{ID: 3, Status: drone.StatusPending}}, 21 {Stage: &drone.Stage{ID: 4, Status: drone.StatusRunning}}, 22 {Stage: &drone.Stage{ID: 5, Status: drone.StatusPassing}}, 23 } 24 25 after := []*Entry{ 26 {Stage: &drone.Stage{ID: 3, Status: drone.StatusPending}}, 27 {Stage: &drone.Stage{ID: 4, Status: drone.StatusRunning}}, 28 {Stage: &drone.Stage{ID: 5, Status: drone.StatusPassing}}, 29 {Stage: &drone.Stage{ID: 2, Status: drone.StatusPassing}}, 30 {Stage: &drone.Stage{ID: 1, Status: drone.StatusPassing}}, 31 } 32 33 s1 := ByTimestamp(before) 34 s2 := ByStatus(before) 35 sort.Sort(s1) 36 sort.Sort(s2) 37 38 if diff := cmp.Diff(before, after); diff != "" { 39 t.Errorf("Expect entries sorted by status") 40 t.Log(diff) 41 } 42 }