this repo has no description
at wasm 208 lines 2.5 kB view raw
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}