This repository has been archived on 2026-09-15. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
OxideJS/crates/oxide_builtins/tests/object_integrity_tests.rs
T

60 lines
1.2 KiB
Rust

use oxide_types::object::JsObject;
use oxide_types::value::JsValue;
fn new_obj() -> JsObject {
JsObject::new_empty(0, JsValue::null())
}
#[test]
fn test_set_frozen() {
let mut obj = new_obj();
assert!(!obj.is_frozen());
obj.set_frozen(true);
assert!(obj.is_frozen());
}
#[test]
fn test_set_sealed() {
let mut obj = new_obj();
assert!(!obj.is_sealed());
obj.set_sealed(true);
assert!(obj.is_sealed());
}
#[test]
fn test_frozen_and_sealed_independent() {
let mut obj = new_obj();
obj.set_frozen(true);
assert!(obj.is_frozen());
assert!(!obj.is_sealed());
obj.set_sealed(true);
assert!(obj.is_frozen());
assert!(obj.is_sealed());
obj.set_frozen(false);
assert!(!obj.is_frozen());
assert!(obj.is_sealed());
}
#[test]
fn test_defaults_are_false() {
let obj = new_obj();
assert!(!obj.is_frozen());
assert!(!obj.is_sealed());
}
#[test]
fn test_clear_frozen() {
let mut obj = new_obj();
obj.set_frozen(true);
obj.set_frozen(false);
assert!(!obj.is_frozen());
}
#[test]
fn test_clear_sealed() {
let mut obj = new_obj();
obj.set_sealed(true);
obj.set_sealed(false);
assert!(!obj.is_sealed());
}