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 /parser_test.go | |
parent | dc3c5a8325eb2f425906b6419806862de84416ef (diff) |
Fix missing coverage
Diffstat (limited to 'parser_test.go')
-rw-r--r-- | parser_test.go | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/parser_test.go b/parser_test.go index e9da404..09cf7f4 100644 --- a/parser_test.go +++ b/parser_test.go @@ -102,6 +102,13 @@ func TestChars(t *testing.T) { require.False(t, ps.Errored()) }) + t.Run("escaped hyphen", func(t *testing.T) { + node, ps := runParser(`ab-ab\cde`, Chars(`a\-b`)) + require.Equal(t, "ab-ab", node.Token) + require.Equal(t, `\cde`, ps.Get()) + require.False(t, ps.Errored()) + }) + t.Run("no match", func(t *testing.T) { _, ps := runParser("ffffff", Chars("0-9")) require.Equal(t, "offset 0: expected 0-9", ps.Error.Error()) @@ -185,6 +192,19 @@ func TestParseString(t *testing.T) { }) } +func TestAutoWS(t *testing.T) { + t.Run("ws is not automatically consumed", func(t *testing.T) { + _, ps := runParser(" hello", NoAutoWS("hello")) + require.Equal(t, "offset 0: expected hello", ps.Error.Error()) + }) + + t.Run("ws is can be explicitly consumed ", func(t *testing.T) { + result, ps := runParser(" hello", NoAutoWS(Seq(WS(), "hello"))) + require.Equal(t, "hello", result.Child[1].Token) + require.Equal(t, "", ps.Get()) + }) +} + func runParser(input string, parser Parser) (Result, *State) { ps := NewState(input) result := parser(ps) |