From eaf5ad1d131ea7adf07b958289aea8f80c5ff62b Mon Sep 17 00:00:00 2001 From: Scott Wolchok Date: Thu, 22 Jun 2017 07:45:28 -0700 Subject: [PATCH] add tests for AddValueToListAttribute (#67) --- edit/edit_test.go | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/edit/edit_test.go b/edit/edit_test.go index 5d05134f4..8f963732b 100644 --- a/edit/edit_test.go +++ b/edit/edit_test.go @@ -131,3 +131,36 @@ load("other loc", "symbol")`, } } } + +func TestAddValueToListAttribute(t *testing.T) { + tests := []struct{ input, expected string }{ + {`rule(name="rule")`, `rule(name="rule", attr=["foo"])`}, + {`rule(name="rule", attr=["foo"])`, `rule(name="rule", attr=["foo"])`}, + {`rule(name="rule", attr=IDENT)`, `rule(name="rule", attr=IDENT+["foo"])`}, + {`rule(name="rule", attr=["foo"] + IDENT)`, `rule(name="rule", attr=["foo"] + IDENT)`}, + {`rule(name="rule", attr=["bar"] + IDENT)`, `rule(name="rule", attr=["bar", "foo"] + IDENT)`}, + {`rule(name="rule", attr=IDENT + ["foo"])`, `rule(name="rule", attr=IDENT + ["foo"])`}, + {`rule(name="rule", attr=IDENT + ["bar"])`, `rule(name="rule", attr=IDENT + ["bar", "foo"])`}, + } + + for _, tst := range tests { + bld, err := build.Parse("BUILD", []byte(tst.input)) + if err != nil { + t.Error(err) + continue + } + rule := bld.RuleAt(1) + AddValueToListAttribute(rule, "attr", "", &build.StringExpr{Value: "foo"}, nil) + got := strings.TrimSpace(string(build.Format(bld))) + + wantBld, err := build.Parse("BUILD", []byte(tst.expected)) + if err != nil { + t.Error(err) + continue + } + want := strings.TrimSpace(string(build.Format(wantBld))) + if got != want { + t.Errorf("AddValueToListAttribute(%s): got %s, expected %s", tst.input, got, want) + } + } +}