aboutsummaryrefslogtreecommitdiff
path: root/test/gleam_json_test.gleam
diff options
context:
space:
mode:
Diffstat (limited to 'test/gleam_json_test.gleam')
-rw-r--r--test/gleam_json_test.gleam21
1 files changed, 13 insertions, 8 deletions
diff --git a/test/gleam_json_test.gleam b/test/gleam_json_test.gleam
index 3e22f00..fcc4a62 100644
--- a/test/gleam_json_test.gleam
+++ b/test/gleam_json_test.gleam
@@ -1,6 +1,7 @@
import gleam/dynamic
import gleam/json.{type Json}
import gleam/option.{None, Some}
+import gleam/string
import gleam/string_builder
import gleeunit
import gleeunit/should
@@ -21,11 +22,8 @@ pub fn decode_empty_test() {
pub fn decode_unexpected_byte_test() {
let assert Error(error) = json.decode(from: "[}", using: dynamic.int)
- let assert json.UnexpectedByte(byte, index) = error
+ let assert json.UnexpectedByte(byte) = error
let assert "0x7D" = byte
-
- // V8 does not report the position of the unexpected byte any more.
- let assert True = index == 1 || index == -1
}
pub fn decode_unexpected_format_test() {
@@ -45,11 +43,8 @@ pub fn decode_bits_empty_test() {
pub fn decode_bits_unexpected_byte_test() {
let assert Error(error) = json.decode(from: "[}", using: dynamic.int)
- let assert json.UnexpectedByte(byte, index) = error
+ let assert json.UnexpectedByte(byte) = error
let assert "0x7D" = byte
-
- // V8 does not report the position of the unexpected byte any more.
- let assert True = index == 1 || index == -1
}
pub fn decode_bits_unexpected_format_test() {
@@ -57,6 +52,16 @@ pub fn decode_bits_unexpected_format_test() {
|> should.equal(Error(json.UnexpectedFormat([empty_list_decode_error()])))
}
+pub fn decode_unexpected_sequence_test() {
+ let assert Error(error) =
+ json.decode(from: "\"\\uxxxx\"", using: dynamic.float)
+ case error {
+ json.UnexpectedSequence("\\uxxxx") -> Nil
+ json.UnexpectedByte("0x78") -> Nil
+ _ -> panic as { "unexpected error: " <> string.inspect(error) }
+ }
+}
+
pub fn encode_string_test() {
json.string("hello")
|> should_encode("\"hello\"")