this repo has no description
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 echo_with_a_simple_expression_and_a_message() {
16 assert_js!(
17 r#"
18pub fn main() {
19 echo 1 as "hello!"
20}
21"#
22 );
23}
24
25#[test]
26pub fn echo_with_complex_expression_as_a_message() {
27 assert_js!(
28 r#"
29pub fn main() {
30 echo 1 as case name() {
31 "Giacomo" -> "hello Jak!"
32 _ -> "hello!"
33 }
34}
35
36fn name() { "Giacomo" }
37"#
38 );
39}
40
41#[test]
42pub fn echo_evaluates_printed_value_before_message() {
43 assert_js!(
44 r#"
45pub fn main() {
46 echo name() as case name() {
47 "Giacomo" -> "hello Jak!"
48 _ -> "hello!"
49 }
50}
51
52fn name() { "Giacomo" }
53"#
54 );
55}
56
57#[test]
58pub fn echo_with_a_block_as_a_message() {
59 assert_js!(
60 r#"
61pub fn main() {
62 echo 1 as {
63 let name = "Giacomo"
64 "Hello, " <> name
65 }
66}
67"#
68 );
69}
70
71#[test]
72pub fn multiple_echos_inside_expression() {
73 assert_js!(
74 r#"
75pub fn main() {
76 echo 1
77 echo 2
78}
79"#
80 );
81}
82
83#[test]
84pub fn echo_with_a_case_expression() {
85 assert_js!(
86 r#"
87pub fn main() {
88 echo case 1 {
89 _ -> 2
90 }
91}
92"#
93 );
94}
95
96#[test]
97pub fn echo_with_a_panic() {
98 assert_js!(
99 r#"
100pub fn main() {
101 echo panic
102}
103"#
104 );
105}
106
107#[test]
108pub fn echo_with_a_function_call() {
109 assert_js!(
110 r#"
111pub fn main() {
112 echo wibble(1, 2)
113}
114
115fn wibble(n: Int, m: Int) { n + m }
116"#
117 );
118}
119
120#[test]
121pub fn echo_with_a_function_call_and_a_message() {
122 assert_js!(
123 r#"
124pub fn main() {
125 echo wibble(1, 2) as message()
126}
127
128fn wibble(n: Int, m: Int) { n + m }
129fn message() { "Hello!" }
130"#
131 );
132}
133
134#[test]
135pub fn echo_with_a_block() {
136 assert_js!(
137 r#"
138pub fn main() {
139 echo {
140 Nil
141 1
142 }
143}
144"#
145 );
146}
147
148#[test]
149pub fn echo_in_a_pipeline() {
150 assert_js!(
151 r#"
152pub fn main() {
153 [1, 2, 3]
154 |> echo
155 |> wibble
156}
157
158pub fn wibble(n) { n }
159"#
160 )
161}
162
163#[test]
164pub fn echo_in_a_pipeline_with_message() {
165 assert_js!(
166 r#"
167pub fn main() {
168 [1, 2, 3]
169 |> echo as "message!!"
170 |> wibble
171}
172
173pub fn wibble(n) { n }
174"#
175 )
176}
177
178#[test]
179pub fn multiple_echos_in_a_pipeline() {
180 assert_js!(
181 r#"
182pub fn main() {
183 [1, 2, 3]
184 |> echo
185 |> wibble
186 |> echo
187 |> wibble
188 |> echo
189}
190
191pub fn wibble(n) { n }
192"#
193 )
194}
195
196#[test]
197pub fn module_named_inspect() {
198 assert_js!(
199 ("other", "other/inspect", "pub const x = Nil"),
200 r#"
201import other/inspect
202
203pub fn main() {
204 echo inspect.x
205}
206"#
207 )
208}