diff options
author | Adam Scarr <adam@vektah.net> | 2017-08-09 21:58:36 +1000 |
---|---|---|
committer | Adam Scarr <adam@vektah.net> | 2017-08-09 21:58:36 +1000 |
commit | d285a0badc988be2cef6e01d224bf8f108bb33bb (patch) | |
tree | bf06aecc2c379d59ee7adadf0b8b37be0d72472b /combinator_test.go | |
parent | dc3c5a8325eb2f425906b6419806862de84416ef (diff) |
Fix missing coverage
Diffstat (limited to 'combinator_test.go')
-rw-r--r-- | combinator_test.go | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/combinator_test.go b/combinator_test.go index e5f3b01..283bb2a 100644 --- a/combinator_test.go +++ b/combinator_test.go @@ -71,6 +71,13 @@ func TestSome(t *testing.T) { require.Equal(t, 10, p2.Pos) }) + t.Run("Matches sequence without trailing sep", func(t *testing.T) { + node, p2 := runParser("a,b,c,d,e1111", Some(Chars("a-g"), ",")) + require.False(t, p2.Errored()) + assertSequence(t, node, "a", "b", "c", "d", "e") + require.Equal(t, "1111", p2.Get()) + }) + t.Run("Matches sequence without sep", func(t *testing.T) { node, p2 := runParser("a,b,c,d,e,", Some(Any(Chars("a-g"), ","))) assertSequence(t, node, "a", ",", "b", ",", "c", ",", "d", ",", "e", ",") @@ -139,6 +146,22 @@ func TestMap(t *testing.T) { }) } +func TestBind(t *testing.T) { + parser := Bind("true", true) + + t.Run("sucess", func(t *testing.T) { + result, _ := runParser("true", parser) + require.Equal(t, true, result.Result) + }) + + t.Run("error", func(t *testing.T) { + result, ps := runParser("nil", parser) + require.Nil(t, result.Result) + require.Equal(t, "offset 0: expected true", ps.Error.Error()) + require.Equal(t, 0, ps.Pos) + }) +} + func TestMerge(t *testing.T) { var bracer Parser bracer = Seq("(", Maybe(&bracer), ")") |