github.com/pf-qiu/concourse/v6@v6.7.3-0.20201207032516-1f455d73275f/atc/db/component_factory_test.go (about) 1 package db_test 2 3 import ( 4 "time" 5 6 "github.com/pf-qiu/concourse/v6/atc" 7 "github.com/pf-qiu/concourse/v6/atc/db" 8 . "github.com/onsi/ginkgo" 9 . "github.com/onsi/gomega" 10 ) 11 12 var _ = Describe("ComponentFactory", func() { 13 Describe("Find", func() { 14 var ( 15 err error 16 found bool 17 component db.Component 18 expectedName = "scheduler" 19 ) 20 21 BeforeEach(func() { 22 _, err = dbConn.Exec("INSERT INTO components (name, interval) VALUES ('scheduler', '100ms') ON CONFLICT (name) DO UPDATE SET interval = EXCLUDED.interval") 23 Expect(err).NotTo(HaveOccurred()) 24 }) 25 26 JustBeforeEach(func() { 27 component, found, err = componentFactory.Find(expectedName) 28 Expect(found).To(BeTrue()) 29 Expect(err).NotTo(HaveOccurred()) 30 }) 31 32 It("returns the db component", func() { 33 Expect(component.Name()).To(Equal(expectedName)) 34 Expect(component.Interval()).To(Equal(100 * time.Millisecond)) 35 Expect(component.Paused()).To(Equal(false)) 36 }) 37 }) 38 39 Describe("CreateOrUpdate", func() { 40 It("updates component interval", func() { 41 interval := 1 * time.Second 42 componentName := "some-component" 43 44 createdComponent, err := componentFactory.CreateOrUpdate(atc.Component{ 45 Name: componentName, 46 Interval: interval, 47 }) 48 Expect(err).NotTo(HaveOccurred()) 49 Expect(createdComponent.ID()).ToNot(BeZero()) 50 Expect(createdComponent.Name()).To(Equal(componentName)) 51 Expect(createdComponent.Interval()).To(Equal(interval)) 52 53 updatedComponent, err := componentFactory.CreateOrUpdate(atc.Component{ 54 Name: componentName, 55 Interval: interval + 1, 56 }) 57 Expect(err).NotTo(HaveOccurred()) 58 Expect(updatedComponent.ID()).To(Equal(createdComponent.ID())) 59 Expect(updatedComponent.Name()).To(Equal(componentName)) 60 Expect(updatedComponent.Interval()).To(Equal(interval + 1)) 61 62 foundComponent, found, err := componentFactory.Find(componentName) 63 Expect(found).To(BeTrue()) 64 Expect(err).NotTo(HaveOccurred()) 65 Expect(foundComponent.ID()).To(Equal(updatedComponent.ID())) 66 Expect(foundComponent.Name()).To(Equal(componentName)) 67 Expect(foundComponent.Interval()).To(Equal(interval + 1)) 68 }) 69 }) 70 })