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  })