From 262f161f42c4e59beec41c6f440336c38385426a Mon Sep 17 00:00:00 2001 From: Marc Coquand Date: Wed, 20 Dec 2023 20:46:00 -0600 Subject: Initial commit --- test/test_parser.ml | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 test/test_parser.ml (limited to 'test/test_parser.ml') diff --git a/test/test_parser.ml b/test/test_parser.ml new file mode 100644 index 0000000..bfc980c --- /dev/null +++ b/test/test_parser.ml @@ -0,0 +1,38 @@ +open Alcotest +open Fixgen + +let parse (s : string) = + let lexbuf = Lexing.from_string s in + let ast = Parser.prog Lexer.read lexbuf in + ast + + +let test_parse s () = + let ast = parse s in + check bool "Parses" (Option.is_some ast) true + + +let table_suite = + [ "Can use underscore for table names", `Quick, test_parse "user_all: name uuidv4" ] + + +let rows_suite = + [ "Can parse uuidv4", `Quick, test_parse "user: id uuidv4" + ; ( "Can parse multiple tables" + , `Quick + , test_parse "user: id uuidv4\npurchases: id uuidv4" ) + ; "Resolves conflicting names", `Quick, test_parse "purchases: name uuidv4" + ] + + +let relations_suite = + [ ( "Can reference other tables" + , `Quick + , test_parse "user: id uuidv4\npurchases: id uuidv4, user_id user.id" ) + ] + + +let () = + Alcotest.run + "Parsing" + [ "Tables", table_suite; "Rows", rows_suite; "Relations", relations_suite ] -- cgit v1.2.3