use crate::ast::IntValue;
use crate::ast::ObjectField;
use crate::ast::ObjectValue;
use crate::ast::Value;
use crate::ast::tests::ast_test_utils::make_byte_span;
use crate::ast::tests::ast_test_utils::make_name;
#[test]
fn object_value_construct_and_source_slice() {
let source = "{x: 1}";
let ov = ObjectValue {
fields: vec![ObjectField {
name: make_name("x", 1, 2),
value: Value::Int(IntValue {
value: 1,
span: make_byte_span(4, 5),
syntax: None,
}),
span: make_byte_span(1, 5),
syntax: None,
}],
span: make_byte_span(0, 6),
syntax: None,
};
assert_eq!(ov.fields.len(), 1);
assert_eq!(ov.fields[0].name.value, "x");
let mut sink = String::new();
ov.append_source(&mut sink, Some(source));
assert_eq!(sink, "{x: 1}");
}