mirror of
https://github.com/vlang/v.git
synced 2023-08-10 21:13:21 +03:00
json: fix [raw] for option string (#17899)
This commit is contained in:
38
vlib/json/json_raw_test.v
Normal file
38
vlib/json/json_raw_test.v
Normal file
@ -0,0 +1,38 @@
|
||||
import json
|
||||
|
||||
struct TestOptionalRawString {
|
||||
id int
|
||||
data ?string [raw]
|
||||
}
|
||||
|
||||
fn test_raw_opt() {
|
||||
test := TestOptionalRawString{
|
||||
id: 1
|
||||
data: 't
|
||||
e
|
||||
s
|
||||
t'
|
||||
}
|
||||
encoded := json.encode(test)
|
||||
assert json.decode(TestOptionalRawString, encoded)!.data? == r'"t\ne\ns\nt"'
|
||||
}
|
||||
|
||||
fn test_raw_none() {
|
||||
test := TestOptionalRawString{
|
||||
id: 1
|
||||
data: none
|
||||
}
|
||||
encoded := json.encode(test)
|
||||
r := json.decode(TestOptionalRawString, encoded)!.data
|
||||
assert r == none
|
||||
}
|
||||
|
||||
fn test_raw_empty_string() {
|
||||
test := TestOptionalRawString{
|
||||
id: 1
|
||||
data: ''
|
||||
}
|
||||
encoded := json.encode(test)
|
||||
r := json.decode(TestOptionalRawString, encoded)!.data or { 'z' }
|
||||
assert r == '""'
|
||||
}
|
Reference in New Issue
Block a user