Skip to content

Commit

Permalink
Add more tests for browser_only
Browse files Browse the repository at this point in the history
  • Loading branch information
davesnx committed Aug 28, 2023
1 parent fac60fb commit f46fa4b
Show file tree
Hide file tree
Showing 5 changed files with 37 additions and 4 deletions.
4 changes: 1 addition & 3 deletions packages/ppx/browser.ml
Original file line number Diff line number Diff line change
Expand Up @@ -67,9 +67,7 @@ let browser_only_on_expressions_rule =
| Native -> (
match payload.pexp_desc with
| Pexp_apply (expression, _) ->
let stringified =
Ppxlib.Pprintast.string_of_expression expression
in
let stringified = Ppxlib.Pprintast.string_of_expression payload in
let message = Builder.estring ~loc stringified in
[%expr raise ReactDOM.Impossible_in_ssr [%e message]]
| Pexp_fun (_arg_label, _arg_expression, fun_pattern, _expression) ->
Expand Down
18 changes: 17 additions & 1 deletion packages/ppx/test_snapshot/ocaml.expected
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@ let payload_should_be_a_string =
[%ocaml.error "payload should be a string literal"]
;;React.useEffect0 (fun () -> None)
let _ = [%ocaml.error "effect only accepts a useEffect expression"]
let _ = raise ReactDOM.Impossible_in_ssr "Webapi.Dom.getElementById"
let _ = raise ReactDOM.Impossible_in_ssr "Webapi.Dom.getElementById \"foo\""
let valueFromEvent = Webapi.Dom.getElementById "foo"
let valueFromEvent evt =
raise
Expand All @@ -102,3 +102,19 @@ let valueFromEvent evt moar_arguments =
(ReactDOM.Impossible_in_ssr
"fun evt -> fun moar_arguments -> Webapi.Dom.getElementById \"foo\"")
[@@warning "-27"]
let make () =
let _ =
raise ReactDOM.Impossible_in_ssr "Webapi.Dom.getElementById \"foo\"" in
let valueFromEvent =
[%ocaml.error
"browser only works on expressions or function definitions"] in
let valueFromEvent evt =
raise
(ReactDOM.Impossible_in_ssr
"fun evt -> Webapi.Dom.getElementById \"foo\"")[@@warning "-27"] in
let valueFromEvent evt moar_arguments =
raise
(ReactDOM.Impossible_in_ssr
"fun evt -> fun moar_arguments -> Webapi.Dom.getElementById \"foo\"")
[@@warning "-27"] in
React.createElement "div"
11 changes: 11 additions & 0 deletions packages/ppx/test_snapshot/ocaml.ml
Original file line number Diff line number Diff line change
Expand Up @@ -128,3 +128,14 @@ let%browser_only valueFromEvent evt = Webapi.Dom.getElementById "foo"

let%browser_only valueFromEvent evt moar_arguments =
Webapi.Dom.getElementById "foo"

let make () =
let _ = [%browser_only Webapi.Dom.getElementById "foo"] in
let%browser_only valueFromEvent = Webapi.Dom.getElementById "foo" in
let%browser_only valueFromEvent evt = Webapi.Dom.getElementById "foo" in

let%browser_only valueFromEvent evt moar_arguments =
Webapi.Dom.getElementById "foo"
in

React.createElement "div"
4 changes: 4 additions & 0 deletions packages/ppx/test_snapshot/reason.expected
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
let _ =
raise(ReactDOM.Impossible_in_ssr, "Webapi.Dom.getElementById \"foo\"");
[@warning "-27"]
let loadInitialText = () =>
raise(ReactDOM.Impossible_in_ssr("fun () -> setHtmlFetchState Loading"));
Expand All @@ -14,6 +16,8 @@ let loadInitialText = (argument1, argument2) =>
),
);
let make = () => {
let _ =
raise(ReactDOM.Impossible_in_ssr, "Webapi.Dom.getElementById \"foo\"");
[@warning "-27"]
let loadInitialText = () =>
raise(ReactDOM.Impossible_in_ssr("fun () -> setHtmlFetchState Loading"));
Expand Down
4 changes: 4 additions & 0 deletions packages/ppx/test_snapshot/reason.re
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
let _ = [%browser_only Webapi.Dom.getElementById("foo")];

let%browser_only loadInitialText = () => {
setHtmlFetchState(Loading);
};
Expand All @@ -11,6 +13,8 @@ let%browser_only loadInitialText = (argument1, argument2) => {
};

let make = () => {
let _ = [%browser_only Webapi.Dom.getElementById("foo")];

let%browser_only loadInitialText = () => {
setHtmlFetchState(Loading);
};
Expand Down

0 comments on commit f46fa4b

Please sign in to comment.