Fork of daniellemaywood.uk/gleam — Wasm codegen work
Something went wrong. Try again.
2.6 kB · 211 lines
Rust
at wasm
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212// SPDX-License-Identifier: Apache-2.0// SPDX-FileCopyrightText: 2024 The Gleam contributors
use crate::assert_js;
#[test]pub fn echo_with_a_simple_expression() { assert_js!( r#"pub fn main() { echo 1}"# );}
#[test]pub fn echo_with_a_simple_expression_and_a_message() { assert_js!( r#"pub fn main() { echo 1 as "hello!"}"# );}
#[test]pub fn echo_with_complex_expression_as_a_message() { assert_js!( r#"pub fn main() { echo 1 as case name() { "Giacomo" -> "hello Jak!" _ -> "hello!" }}
fn name() { "Giacomo" }"# );}
#[test]pub fn echo_evaluates_printed_value_before_message() { assert_js!( r#"pub fn main() { echo name() as case name() { "Giacomo" -> "hello Jak!" _ -> "hello!" }}
fn name() { "Giacomo" }"# );}
#[test]pub fn echo_with_a_block_as_a_message() { assert_js!( r#"pub fn main() { echo 1 as { let name = "Giacomo" "Hello, " <> name }}"# );}
#[test]pub fn multiple_echos_inside_expression() { assert_js!( r#"pub fn main() { echo 1 echo 2}"# );}
#[test]pub fn echo_with_a_case_expression() { assert_js!( r#"pub fn main() { echo case 1 { _ -> 2 }}"# );}
#[test]pub fn echo_with_a_panic() { assert_js!( r#"pub fn main() { echo panic}"# );}
#[test]pub fn echo_with_a_function_call() { assert_js!( r#"pub fn main() { echo wibble(1, 2)}
fn wibble(n: Int, m: Int) { n + m }"# );}
#[test]pub fn echo_with_a_function_call_and_a_message() { assert_js!( r#"pub fn main() { echo wibble(1, 2) as message()}
fn wibble(n: Int, m: Int) { n + m }fn message() { "Hello!" }"# );}
#[test]pub fn echo_with_a_block() { assert_js!( r#"pub fn main() { echo { Nil 1 }}"# );}
#[test]pub fn echo_in_a_pipeline() { assert_js!( r#"pub fn main() { [1, 2, 3] |> echo |> wibble}
pub fn wibble(n) { n }"# )}
#[test]pub fn echo_in_a_pipeline_with_message() { assert_js!( r#"pub fn main() { [1, 2, 3] |> echo as "message!!" |> wibble}
pub fn wibble(n) { n }"# )}
#[test]pub fn multiple_echos_in_a_pipeline() { assert_js!( r#"pub fn main() { [1, 2, 3] |> echo |> wibble |> echo |> wibble |> echo}
pub fn wibble(n) { n }"# )}
#[test]pub fn module_named_inspect() { assert_js!( ("other", "other/inspect", "pub const x = Nil"), r#"import other/inspect
pub fn main() { echo inspect.x}"# )}