github.com/benchkram/bob@v0.0.0-20240314204020-b7a57f2f9be9/test/e2e/target-name/name_test.go (about) 1 package targetnametest 2 3 import ( 4 "github.com/benchkram/bob/bobtask" 5 . "github.com/onsi/ginkgo" 6 . "github.com/onsi/gomega" 7 ) 8 9 var _ = Describe("Testing name of targets", func() { 10 When("two tasks from same bobfile have the same target", func() { 11 It("will return an error on aggregation", func() { 12 useBobfile("with_simple_file") 13 defer releaseBobfile("with_simple_file") 14 15 b, err := BobSetup() 16 Expect(err).NotTo(HaveOccurred()) 17 18 _, err = b.Aggregate() 19 Expect(err).To(HaveOccurred()) 20 21 expected := bobtask.CreateErrAmbiguousTargets([]string{"another", "build"}, "hello").Error() 22 Expect(err.Error()).To(Equal(expected)) 23 }) 24 }) 25 26 When("two tasks(one containing multiline targets) from same bobfile have the same target", func() { 27 It("will return an error on aggregation", func() { 28 useBobfile("with_multiline_target") 29 defer releaseBobfile("with_multiline_target") 30 31 b, err := BobSetup() 32 Expect(err).NotTo(HaveOccurred()) 33 34 _, err = b.Aggregate() 35 Expect(err).To(HaveOccurred()) 36 37 expected := bobtask.CreateErrAmbiguousTargets([]string{"another", "build"}, "hello").Error() 38 Expect(err.Error()).To(Equal(expected)) 39 }) 40 }) 41 42 When("a target with same name exists in a second level bob file", func() { 43 It("should not return error on aggregation because they have different paths", func() { 44 useBobfile("with_second_level") 45 defer releaseBobfile("with_second_level") 46 47 useSecondLevelBobfile("with_second_level") 48 defer releaseSecondLevelBobfile("with_second_level") 49 50 b, err := BobSetup() 51 Expect(err).NotTo(HaveOccurred()) 52 53 _, err = b.Aggregate() 54 Expect(err).To(Not(HaveOccurred())) 55 }) 56 }) 57 58 When("two tasks from same bobfile have the same image target", func() { 59 It("will return an error on aggregation", func() { 60 useBobfile("with_target_image") 61 defer releaseBobfile("with_target_image") 62 63 b, err := BobSetup() 64 Expect(err).NotTo(HaveOccurred()) 65 66 _, err = b.Aggregate() 67 Expect(err).To(HaveOccurred()) 68 69 expected := bobtask.CreateErrAmbiguousTargets([]string{"another", "build"}, "my-image:latest").Error() 70 Expect(err.Error()).To(Equal(expected)) 71 }) 72 }) 73 74 When("an image target with same name exists in a second level bob file", func() { 75 It("should return error on aggregation", func() { 76 useBobfile("with_target_image_second_level") 77 defer releaseBobfile("with_target_image_second_level") 78 79 useSecondLevelBobfile("with_target_image_second_level") 80 defer releaseSecondLevelBobfile("with_target_image_second_level") 81 82 b, err := BobSetup() 83 Expect(err).NotTo(HaveOccurred()) 84 85 _, err = b.Aggregate() 86 Expect(err).To(HaveOccurred()) 87 88 expected := bobtask.CreateErrAmbiguousTargets([]string{"build", "second/build"}, "my-image:latest").Error() 89 Expect(err.Error()).To(Equal(expected)) 90 }) 91 }) 92 93 When("a target with same path exists in a second level bob file", func() { 94 It("should return error on aggregation because targets are identical", func() { 95 useBobfile("with_second_level_same_path") 96 defer releaseBobfile("with_second_level_same_path") 97 98 useSecondLevelBobfile("with_second_level_same_path") 99 defer releaseSecondLevelBobfile("with_second_level_same_path") 100 101 b, err := BobSetup() 102 Expect(err).NotTo(HaveOccurred()) 103 104 _, err = b.Aggregate() 105 Expect(err).To(HaveOccurred()) 106 107 expected := bobtask.CreateErrAmbiguousTargets([]string{"build", "second/build"}, "second/hello").Error() 108 Expect(err.Error()).To(Equal(expected)) 109 }) 110 }) 111 })