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