aiken_lang/parser/definition/
test.rs1use crate::{
2 ast,
3 parser::{error::ParseError, token::Token},
4};
5use chumsky::prelude::*;
6
7pub fn parser() -> impl Parser<Token, ast::UntypedDefinition, Error = ParseError> {
8 crate::parser::definition::test_like::parser(Token::Test)
9}
10
11#[cfg(test)]
12mod tests {
13 use crate::assert_definition;
14
15 #[test]
16 fn def_test() {
17 assert_definition!(
18 r#"
19 test foo() {
20 True
21 }
22 "#
23 );
24 }
25
26 #[test]
27 fn def_test_fail() {
28 assert_definition!(
29 r#"
30 test invalid_inputs() fail {
31 expect True = False
32
33 False
34 }
35 "#
36 );
37 }
38
39 #[test]
40 fn def_property_test() {
41 assert_definition!(
42 r#"
43 test foo(x via fuzz.any_int) {
44 True
45 }
46 "#
47 );
48 }
49
50 #[test]
51 fn def_invalid_property_test() {
52 assert_definition!(
53 r#"
54 test foo(x via f, y via g) {
55 True
56 }
57 "#
58 );
59 }
60
61 #[test]
62 fn def_property_test_annotated_fuzzer() {
63 assert_definition!(
64 r#"
65 test foo(x: Int via foo()) {
66 True
67 }
68 "#
69 );
70 }
71}