aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--test/gleam_json_js_ffi_test.gleam115
1 files changed, 55 insertions, 60 deletions
diff --git a/test/gleam_json_js_ffi_test.gleam b/test/gleam_json_js_ffi_test.gleam
index 74d1867..f746ce2 100644
--- a/test/gleam_json_js_ffi_test.gleam
+++ b/test/gleam_json_js_ffi_test.gleam
@@ -1,72 +1,67 @@
-import gleeunit
-import gleam/json.{DecodeError, UnexpectedByte, UnexpectedEndOfInput}
-import gleeunit/should
-
if javascript {
- pub fn main() {
- gleeunit.main()
+ import gleam/json.{DecodeError, UnexpectedByte, UnexpectedEndOfInput}
+ import gleeunit/should
+
+ type StandardError {
+ StandardError(message: String)
}
-}
-type StandardError {
- StandardError(message: String)
-}
+ // === End of input tests === //
+ pub fn chromium_end_of_input_test() {
+ "Unexpected end of JSON input"
+ |> StandardError
+ |> get_json_decode_error("")
+ |> should.equal(UnexpectedEndOfInput)
+ }
-// === End of input tests === //
-pub fn chromium_end_of_input_test() {
- "Unexpected end of JSON input"
- |> StandardError
- |> get_json_decode_error("")
- |> should.equal(UnexpectedEndOfInput)
-}
+ pub fn spidermonkey_end_of_input_test() {
+ "JSON.parse: unexpected end of data at line 1 column 1 of the JSON data"
+ |> StandardError
+ |> get_json_decode_error("")
+ |> should.equal(UnexpectedEndOfInput)
+ }
-pub fn spidermonkey_end_of_input_test() {
- "JSON.parse: unexpected end of data at line 1 column 1 of the JSON data"
- |> StandardError
- |> get_json_decode_error("")
- |> should.equal(UnexpectedEndOfInput)
-}
+ pub fn javascript_core_end_of_input_test() {
+ "JSON Parse error: Unexpected EOF"
+ |> StandardError
+ |> get_json_decode_error("")
+ |> should.equal(UnexpectedEndOfInput)
+ }
-pub fn javascript_core_end_of_input_test() {
- "JSON Parse error: Unexpected EOF"
- |> StandardError
- |> get_json_decode_error("")
- |> should.equal(UnexpectedEndOfInput)
-}
+ // === Unexpected byte tests === //
+ pub fn chromium_unexpected_byte_test() {
+ "Unexpected token a in JSON at position 5"
+ |> StandardError
+ |> get_json_decode_error("{\"b\":a}")
+ |> should.equal(UnexpectedByte(byte: "0x61", position: 5))
+ }
-// === Unexpected byte tests === //
-pub fn chromium_unexpected_byte_test() {
- "Unexpected token a in JSON at position 5"
- |> StandardError
- |> get_json_decode_error("{\"b\":a}")
- |> should.equal(UnexpectedByte(byte: "0x61", position: 5))
-}
+ pub fn spidermonkey_unexpected_byte_test() {
+ "JSON.parse: expected property name or '}' at line 1 column 6 of the JSON data"
+ |> StandardError
+ |> get_json_decode_error("{\"b\":a}")
+ |> should.equal(UnexpectedByte(byte: "0x61", position: 5))
+ }
-pub fn spidermonkey_unexpected_byte_test() {
- "JSON.parse: expected property name or '}' at line 1 column 6 of the JSON data"
- |> StandardError
- |> get_json_decode_error("{\"b\":a}")
- |> should.equal(UnexpectedByte(byte: "0x61", position: 5))
-}
+ pub fn javascript_core_unexpected_byte_test() {
+ "JSON Parse error: Unexpected identifier \"a\""
+ |> StandardError
+ |> get_json_decode_error("{\"b\":a}")
+ |> should.equal(UnexpectedByte(byte: "0x61", position: 0))
+ }
-pub fn javascript_core_unexpected_byte_test() {
- "JSON Parse error: Unexpected identifier \"a\""
- |> StandardError
- |> get_json_decode_error("{\"b\":a}")
- |> should.equal(UnexpectedByte(byte: "0x61", position: 0))
-}
+ pub fn spidermonkey_multiline_unexpected_byte_test() {
+ "JSON.parse: expected property name or '}' at line 2 column 6 of the JSON data"
+ |> StandardError
+ |> get_json_decode_error("{\n\"b\": a\n}")
+ |> should.equal(UnexpectedByte(byte: "0x61", position: 7))
-pub fn spidermonkey_multiline_unexpected_byte_test() {
- "JSON.parse: expected property name or '}' at line 2 column 6 of the JSON data"
- |> StandardError
- |> get_json_decode_error("{\n\"b\": a\n}")
- |> should.equal(UnexpectedByte(byte: "0x61", position: 7))
+ "JSON.parse: expected double-quoted property name at line 3 column 1 of the JSON data"
+ |> StandardError
+ |> get_json_decode_error("{\n\"b\": \"x\",\na\n}")
+ |> should.equal(UnexpectedByte(byte: "0x61", position: 12))
+ }
- "JSON.parse: expected double-quoted property name at line 3 column 1 of the JSON data"
- |> StandardError
- |> get_json_decode_error("{\n\"b\": \"x\",\na\n}")
- |> should.equal(UnexpectedByte(byte: "0x61", position: 12))
+ external fn get_json_decode_error(StandardError, String) -> DecodeError =
+ "./gleam_json_ffi.mjs" "getJsonDecodeError"
}
-
-external fn get_json_decode_error(StandardError, String) -> DecodeError =
- "./gleam_json_ffi.mjs" "getJsonDecodeError"