github.com/please-build/puku@v1.7.3-0.20240516143641-f7d7f4941f57/edit/edit_test.go (about) 1 package edit 2 3 import ( 4 "testing" 5 6 "github.com/please-build/buildtools/build" 7 "github.com/stretchr/testify/assert" 8 "github.com/stretchr/testify/require" 9 ) 10 11 func TestEnsureSubinclude(t *testing.T) { 12 t.Run("adds if missing", func(t *testing.T) { 13 file, _ := build.Parse("test", nil) 14 15 EnsureSubinclude(file) 16 require.Len(t, file.Stmt, 1) 17 subinc := &build.CallExpr{ 18 X: &build.Ident{Name: "subinclude"}, 19 List: []build.Expr{NewStringExpr("///go//build_defs:go")}, 20 } 21 assert.Equal(t, file.Stmt[0], subinc) 22 }) 23 24 t.Run("updates existing", func(t *testing.T) { 25 file, _ := build.Parse("test", nil) 26 file.Stmt = []build.Expr{ 27 &build.CallExpr{ 28 X: &build.Ident{Name: "subinclude"}, 29 List: []build.Expr{NewStringExpr("///python//build_defs:python")}, 30 }, 31 } 32 33 EnsureSubinclude(file) 34 require.Len(t, file.Stmt, 1) 35 subinc := &build.CallExpr{ 36 X: &build.Ident{Name: "subinclude"}, 37 List: []build.Expr{ 38 NewStringExpr("///python//build_defs:python"), 39 NewStringExpr("///go//build_defs:go"), 40 }, 41 } 42 assert.Equal(t, file.Stmt[0], subinc) 43 }) 44 45 t.Run("does nothing if it exists", func(t *testing.T) { 46 file, _ := build.Parse("test", nil) 47 file.Stmt = []build.Expr{ 48 &build.CallExpr{ 49 X: &build.Ident{Name: "subinclude"}, 50 List: []build.Expr{NewStringExpr("///go//build_defs:go")}, 51 }, 52 } 53 54 EnsureSubinclude(file) 55 require.Len(t, file.Stmt, 1) 56 subinc := &build.CallExpr{ 57 X: &build.Ident{Name: "subinclude"}, 58 List: []build.Expr{ 59 NewStringExpr("///go//build_defs:go"), 60 }, 61 } 62 assert.Equal(t, file.Stmt[0], subinc) 63 }) 64 }