1use crate::assert_js;
2
3#[test]
4pub fn echo_with_a_simple_expression() {
5 assert_js!(
6 r#"
7pub fn main() {
8 echo 1
9}
10"#
11 );
12}
13
14#[test]
15pub fn multiple_echos_inside_expression() {
16 assert_js!(
17 r#"
18pub fn main() {
19 echo 1
20 echo 2
21}
22"#
23 );
24}
25
26#[test]
27pub fn echo_with_a_case_expression() {
28 assert_js!(
29 r#"
30pub fn main() {
31 echo case 1 {
32 _ -> 2
33 }
34}
35"#
36 );
37}
38
39#[test]
40pub fn echo_with_a_panic() {
41 assert_js!(
42 r#"
43pub fn main() {
44 echo panic
45}
46"#
47 );
48}
49
50#[test]
51pub fn echo_with_a_function_call() {
52 assert_js!(
53 r#"
54pub fn main() {
55 echo wibble(1, 2)
56}
57
58fn wibble(n: Int, m: Int) { n + m }
59"#
60 );
61}
62
63#[test]
64pub fn echo_with_a_block() {
65 assert_js!(
66 r#"
67pub fn main() {
68 echo {
69 Nil
70 1
71 }
72}
73"#
74 );
75}
76
77#[test]
78pub fn echo_in_a_pipeline() {
79 assert_js!(
80 r#"
81pub fn main() {
82 [1, 2, 3]
83 |> echo
84 |> wibble
85}
86
87pub fn wibble(n) { n }
88"#
89 )
90}
91
92#[test]
93pub fn multiple_echos_in_a_pipeline() {
94 assert_js!(
95 r#"
96pub fn main() {
97 [1, 2, 3]
98 |> echo
99 |> wibble
100 |> echo
101 |> wibble
102 |> echo
103}
104
105pub fn wibble(n) { n }
106"#
107 )
108}
109
110#[test]
111pub fn module_named_inspect() {
112 assert_js!(
113 ("other", "other/inspect", "pub const x = Nil"),
114 r#"
115import other/inspect
116
117pub fn main() {
118 echo inspect.x
119}
120"#
121 )
122}