Fork of daniellemaywood.uk/gleam — Wasm codegen work
1.1 kB
101 lines
1// SPDX-License-Identifier: Apache-2.0
2// SPDX-FileCopyrightText: 2021 The Gleam contributors
3
4use crate::{assert_js, assert_ts_def};
5
6#[test]
7fn bare() {
8 assert_js!(
9 r#"
10pub fn go() {
11 panic
12}
13"#,
14 );
15}
16
17#[test]
18fn panic_as() {
19 assert_js!(
20 r#"
21pub fn go() {
22 let x = "wibble"
23 panic as x
24}
25"#,
26 );
27}
28
29#[test]
30fn bare_typescript() {
31 assert_ts_def!(
32 r#"
33pub fn go() {
34 panic
35}
36"#,
37 );
38}
39
40#[test]
41fn as_expression() {
42 assert_js!(
43 r#"
44pub fn go(f) {
45 let boop = panic
46 f(panic)
47}
48"#,
49 );
50}
51
52#[test]
53fn pipe() {
54 assert_js!(
55 r#"
56pub fn go(f) {
57 f |> panic
58}
59"#,
60 );
61}
62
63#[test]
64fn sequence() {
65 assert_js!(
66 r#"
67pub fn go(at_the_disco) {
68 panic
69 at_the_disco
70}
71"#,
72 );
73}
74
75#[test]
76fn case() {
77 assert_js!(
78 r#"
79pub fn go(x) {
80 case x {
81 _ -> panic
82 }
83}
84"#,
85 );
86}
87
88// https://github.com/gleam-lang/gleam/issues/4471
89#[test]
90fn case_message() {
91 assert_js!(
92 r#"
93pub fn crash(message) {
94 panic as case message {
95 Ok(message) -> message
96 Error(_) -> "No message provided"
97 }
98}
99"#
100 );
101}