From 228a9e28e1c19f12a6ca60ea85fab2b5c6c101ab Mon Sep 17 00:00:00 2001 From: Max Brunsfeld Date: Mon, 17 Aug 2020 13:27:17 -0700 Subject: [PATCH] Add tests for impossible queries --- cli/src/tests/query_test.rs | 37 ++++++++++++++++++++++++++++--------- 1 file changed, 28 insertions(+), 9 deletions(-) diff --git a/cli/src/tests/query_test.rs b/cli/src/tests/query_test.rs index aa5a6744..15c64afa 100644 --- a/cli/src/tests/query_test.rs +++ b/cli/src/tests/query_test.rs @@ -186,21 +186,40 @@ fn test_query_errors_on_invalid_conditions() { #[test] fn test_query_errors_on_impossible_patterns() { - allocations::record(|| { - let language = get_language("javascript"); + let js_lang = get_language("javascript"); + let rb_lang = get_language("ruby"); + allocations::record(|| { assert_eq!( Query::new( - language, - "(binary_expression left:(identifier) left:(identifier))" + js_lang, + "(binary_expression left: (identifier) left: (identifier))" ), Err(QueryError::Pattern( 1, - [ - "(binary_expression left:(identifier) left:(identifier))", // - "^" - ] - .join("\n") + "(binary_expression left: (identifier) left: (identifier))\n^".to_string(), + )) + ); + + Query::new( + js_lang, + "(function_declaration name: (identifier) (statement_block))", + ) + .unwrap(); + assert_eq!( + Query::new(js_lang, "(function_declaration name: (statement_block))"), + Err(QueryError::Pattern( + 1, + "(function_declaration name: (statement_block))\n^".to_string(), + )) + ); + + Query::new(rb_lang, "(call receiver:(call))").unwrap(); + assert_eq!( + Query::new(rb_lang, "(call receiver:(binary))"), + Err(QueryError::Pattern( + 1, + "(call receiver:(binary))\n^".to_string(), )) ); });