Fork of daniellemaywood.uk/gleam — Wasm codegen work
2

Configure Feed

Select the types of activity you want to include in your feed.

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