github.com/benchkram/bob@v0.0.0-20240314204020-b7a57f2f9be9/bob/bobfile/bobfile_test.go (about) 1 package bobfile_test 2 3 import ( 4 "errors" 5 "testing" 6 7 "github.com/benchkram/bob/bob/bobfile" 8 "github.com/benchkram/bob/bobrun" 9 "github.com/benchkram/bob/bobtask" 10 ) 11 12 func TestBobfileValidateSelReference(t *testing.T) { 13 b := bobfile.NewBobfile() 14 15 b.BTasks["one"] = bobtask.Task{ 16 DependsOn: []string{"one"}, 17 } 18 19 if err := b.Validate(); err == nil { 20 t.Error("Expected error, got nil") 21 } 22 } 23 24 func TestBobfileValidateDuplicateName(t *testing.T) { 25 b := bobfile.NewBobfile() 26 27 b.BTasks["one"] = bobtask.Task{} 28 29 b.RTasks["one"] = &bobrun.Run{} 30 31 if err := b.Validate(); err == nil { 32 t.Error("Expected error, got nil") 33 } 34 } 35 36 func TestBobfileValidateInvalidVersion(t *testing.T) { 37 b := bobfile.NewBobfile() 38 39 b.Version = "invalid-version" 40 41 if err := b.Validate(); err == nil { 42 t.Error("Expected error, got nil") 43 } 44 } 45 46 func TestBobfileValidateValidVersion(t *testing.T) { 47 b := bobfile.NewBobfile() 48 49 b.Version = "1.2.3" 50 51 if err := b.Validate(); err != nil { 52 t.Error("Expected nil, got error") 53 } 54 } 55 56 func TestBobfileProjectName(t *testing.T) { 57 var tests = []struct { 58 name string 59 expected error 60 }{ 61 {"simple-project", nil}, 62 {"project-with-inv@lid-chars", bobfile.ErrInvalidProjectName}, 63 {"bob.build/user/url-project", nil}, 64 {"https://bob.build/user/schema-url-project", bobfile.ErrInvalidProjectName}, 65 } 66 67 for _, tt := range tests { 68 b := bobfile.NewBobfile() 69 b.Project = tt.name 70 71 err := b.Validate() 72 73 if !errors.Is(err, tt.expected) { 74 t.Errorf("ValidateProjectName(%s): expected %q, got %q", tt.name, tt.expected, err) 75 } 76 } 77 }