use slate_framework::types::ElementId;
#[test]
fn element_id_next_unique() {
let id1 = ElementId::next();
let id2 = ElementId::next();
let id3 = ElementId::next();
assert_ne!(id1, id2);
assert_ne!(id2, id3);
assert_ne!(id1, id3);
}
#[test]
fn element_id_from_raw_roundtrip() {
let id = ElementId::from_raw(12345);
assert_eq!(id.as_u64(), 12345);
}
#[test]
fn element_id_equality() {
let id1 = ElementId::from_raw(100);
let id2 = ElementId::from_raw(100);
let id3 = ElementId::from_raw(200);
assert_eq!(id1, id2);
assert_ne!(id1, id3);
}
#[test]
fn element_id_hash() {
use std::collections::HashSet;
let mut set = HashSet::new();
set.insert(ElementId::from_raw(1));
set.insert(ElementId::from_raw(2));
set.insert(ElementId::from_raw(1));
assert_eq!(set.len(), 2);
}
#[test]
fn element_id_debug() {
let id = ElementId::from_raw(42);
let debug = format!("{:?}", id);
assert!(debug.contains("42"));
}
#[test]
fn div_key_builder() {
use slate_framework::Div;
let div = Div::new().key("toolbar");
drop(div);
}
#[test]
fn text_key_builder() {
use slate_framework::Text;
let text = Text::new("item").key("list-item-1");
drop(text);
}
#[test]
fn div_with_keyed_children() {
use slate_framework::{Div, Text};
let div = Div::new()
.child(Text::new("first").key("item-a"))
.child(Text::new("second").key("item-b"))
.child(Text::new("third").key("item-c"));
drop(div);
}