github.com/saucelabs/saucectl@v0.175.1/internal/cypress/suite/suite_test.go (about) 1 package suite 2 3 import ( 4 "testing" 5 6 "github.com/saucelabs/saucectl/internal/insights" 7 "gotest.tools/assert" 8 ) 9 10 func TestSuite_SortByHistory(t *testing.T) { 11 testCases := []struct { 12 name string 13 suites []Suite 14 history insights.JobHistory 15 expRes []Suite 16 }{ 17 { 18 name: "sort suites by job history", 19 suites: []Suite{ 20 Suite{Name: "suite 1"}, 21 Suite{Name: "suite 2"}, 22 Suite{Name: "suite 3"}, 23 }, 24 history: insights.JobHistory{ 25 TestCases: []insights.TestCase{ 26 insights.TestCase{Name: "suite 2"}, 27 insights.TestCase{Name: "suite 1"}, 28 insights.TestCase{Name: "suite 3"}, 29 }, 30 }, 31 expRes: []Suite{ 32 Suite{Name: "suite 2"}, 33 Suite{Name: "suite 1"}, 34 Suite{Name: "suite 3"}, 35 }, 36 }, 37 { 38 name: "suites is the subset of job history", 39 suites: []Suite{ 40 Suite{Name: "suite 1"}, 41 Suite{Name: "suite 2"}, 42 }, 43 history: insights.JobHistory{ 44 TestCases: []insights.TestCase{ 45 insights.TestCase{Name: "suite 2"}, 46 insights.TestCase{Name: "suite 1"}, 47 insights.TestCase{Name: "suite 3"}, 48 }, 49 }, 50 expRes: []Suite{ 51 Suite{Name: "suite 2"}, 52 Suite{Name: "suite 1"}, 53 }, 54 }, 55 { 56 name: "job history is the subset of suites", 57 suites: []Suite{ 58 Suite{Name: "suite 1"}, 59 Suite{Name: "suite 2"}, 60 Suite{Name: "suite 3"}, 61 Suite{Name: "suite 4"}, 62 Suite{Name: "suite 5"}, 63 }, 64 history: insights.JobHistory{ 65 TestCases: []insights.TestCase{ 66 insights.TestCase{Name: "suite 2"}, 67 insights.TestCase{Name: "suite 1"}, 68 insights.TestCase{Name: "suite 3"}, 69 }, 70 }, 71 expRes: []Suite{ 72 Suite{Name: "suite 2"}, 73 Suite{Name: "suite 1"}, 74 Suite{Name: "suite 3"}, 75 Suite{Name: "suite 4"}, 76 Suite{Name: "suite 5"}, 77 }, 78 }, 79 } 80 81 for _, tc := range testCases { 82 t.Run(tc.name, func(t *testing.T) { 83 result := SortByHistory(tc.suites, tc.history) 84 for i := 0; i < len(result); i++ { 85 assert.Equal(t, tc.expRes[i].Name, result[i].Name) 86 } 87 }) 88 } 89 }