github.com/billybanfield/evergreen@v0.0.0-20170525200750-eeee692790f7/model/version_test.go (about) 1 package model 2 3 import ( 4 "testing" 5 6 "github.com/evergreen-ci/evergreen" 7 "github.com/evergreen-ci/evergreen/db" 8 "github.com/evergreen-ci/evergreen/model/version" 9 "github.com/evergreen-ci/evergreen/testutil" 10 "github.com/mongodb/grip" 11 . "github.com/smartystreets/goconvey/convey" 12 ) 13 14 func init() { 15 db.SetGlobalSessionProvider(db.SessionFactoryFromConfig(testutil.TestConfig())) 16 grip.Warning(grip.SetSender(testutil.SetupTestSender("/tmp/version_test.log"))) 17 } 18 19 func TestLastKnownGoodConfig(t *testing.T) { 20 Convey("When calling LastKnownGoodConfig..", t, func() { 21 identifier := "identifier" 22 Convey("no versions should be returned if there're no good "+ 23 "last known configurations", func() { 24 v := &version.Version{ 25 Identifier: identifier, 26 Requester: evergreen.RepotrackerVersionRequester, 27 Errors: []string{"error 1", "error 2"}, 28 } 29 testutil.HandleTestingErr(v.Insert(), t, "Error inserting test version: %v") 30 lastGood, err := version.FindOne(version.ByLastKnownGoodConfig(identifier)) 31 testutil.HandleTestingErr(err, t, "error finding last known good: %v") 32 So(lastGood, ShouldBeNil) 33 }) 34 Convey("a version should be returned if there is a last known good configuration", func() { 35 v := &version.Version{ 36 Identifier: identifier, 37 Requester: evergreen.RepotrackerVersionRequester, 38 } 39 testutil.HandleTestingErr(v.Insert(), t, "Error inserting test version: %v") 40 lastGood, err := version.FindOne(version.ByLastKnownGoodConfig(identifier)) 41 testutil.HandleTestingErr(err, t, "error finding last known good: %v") 42 So(lastGood, ShouldNotBeNil) 43 }) 44 Convey("most recent version should be found if there are several recent good configs", func() { 45 v := &version.Version{ 46 Id: "1", 47 Identifier: identifier, 48 Requester: evergreen.RepotrackerVersionRequester, 49 RevisionOrderNumber: 1, 50 Config: "1", 51 } 52 testutil.HandleTestingErr(v.Insert(), t, "Error inserting test version: %v") 53 v.Id = "5" 54 v.RevisionOrderNumber = 5 55 v.Config = "5" 56 testutil.HandleTestingErr(v.Insert(), t, "Error inserting test version: %v") 57 v.Id = "2" 58 v.RevisionOrderNumber = 2 59 v.Config = "2" 60 testutil.HandleTestingErr(v.Insert(), t, "Error inserting test version: %v") 61 lastGood, err := version.FindOne(version.ByLastKnownGoodConfig(identifier)) 62 testutil.HandleTestingErr(err, t, "error finding last known good: %v") 63 So(lastGood, ShouldNotBeNil) 64 So(lastGood.Config, ShouldEqual, "5") 65 }) 66 Reset(func() { 67 So(db.Clear(version.Collection), ShouldBeNil) 68 }) 69 }) 70 }