diff --git a/birdie_snapshots/should_fail_to_parse_'lt'_as_node_let.accepted b/birdie_snapshots/should_fail_to_parse_'lt'_as_node_let.accepted index 4c22279da9b622ca08eade7ab16f232f24d3e087..f8a7bd829f96ceb64fceec07c8c8db0d546b1f63 100644 --- a/birdie_snapshots/should_fail_to_parse_'lt'_as_node_let.accepted +++ b/birdie_snapshots/should_fail_to_parse_'lt'_as_node_let.accepted @@ -1,10 +1,14 @@ --- version: 1.4.1 title: Should fail to parse 'lt' as node.Let -file: ./test/ghall_test.gleam -test_name: parse_let_failing_test --- -Msg: expected 'e' in keyword 'let' -Got: t -At column: 2 +Number of errors: 1 +Input: lt +Error 1 [in "match_chars(let)"]: Expected expected 'e' in keyword 'let', but got "t" +Call chain: + ↳ called from "match_chars(let)" + ↳ called from "exact_string('let')" +1 │ lt + ┬ + └─ error location diff --git a/birdie_snapshots/should_successfully_parse_'let'_as_node_let.accepted b/birdie_snapshots/should_successfully_parse_'let'_as_node_let.accepted new file mode 100644 index 0000000000000000000000000000000000000000..58fb90d322d0437d470d0bea905830f4b77ed1a2 --- /dev/null +++ b/birdie_snapshots/should_successfully_parse_'let'_as_node_let.accepted @@ -0,0 +1,8 @@ +--- +version: 1.4.1 +title: Should successfully parse 'let' as node.Let +--- +Input: let +Parsed 1 node(s): + 1. Let + diff --git a/test/ghall_test.gleam b/test/ghall_test.gleam index ea61dbbf18276d04446db79c9be8fbef034fc92f..9107ef305f9aec070030caf35ae6f2e51f455f55 100644 --- a/test/ghall_test.gleam +++ b/test/ghall_test.gleam @@ -1,9 +1,7 @@ -import birdie -import gleam/int import gleam/list import gleam/result import gleeunit -import nibble.{Expected} +import nibble import nibble/lexer.{Span, Token} import node import parser @@ -43,29 +41,26 @@ pub fn parse_let_successfully_test() { let input = "let" let tokens = quasi_lexer.chars() |> quasi_lexer.run(on: input) let parser = parser.exact_string("let", node.Let) - let assert Ok(_) = nibble.run(tokens, parser) + let result = nibble.run(tokens, parser) + + snapshot_helpers.snap_parse_result_nodes( + input, + result |> result.map(list.wrap), + "Should successfully parse 'let' as node.Let", + ) } pub fn parse_let_failing_test() { let input = "lt" let tokens = quasi_lexer.chars() |> quasi_lexer.run(on: input) let parser = parser.exact_string("let", node.Let) - let assert Error(error) = nibble.run(tokens, parser) - let assert [nibble.DeadEnd(Span(_, cs, _, _), Expected(msg, got: got), _)] = - error - - let snap = - "Msg: " - <> msg - <> "\n" - <> "Got: " - <> got - <> "\n" - <> "At column: " - <> int.to_string(cs) - <> "\n" - - birdie.snap(snap, title: "Should fail to parse 'lt' as node.Let") + let result = nibble.run(tokens, parser) + + snapshot_helpers.snap_parse_result_nodes( + input, + result |> result.map(list.wrap), + "Should fail to parse 'lt' as node.Let", + ) } pub fn parse_unix_line_ending_test() {