vize_musea 0.125.0

Musea - Component gallery and documentation for Vize Vue components
Documentation
use super::{
    build_token_map, generate_tokens_markdown, parse_tokens_from_json, resolve_token_categories,
    validate_reference,
};

#[test]
fn parses_and_resolves_token_references() {
    let categories = parse_tokens_from_json(
        r##"{
  "color": {
    "primitive": {
      "gray": { "50": { "value": "#f7f7f7", "type": "color" } }
    },
    "semantic": {
      "surface": { "value": "{color.primitive.gray.50}" }
    }
  }
}"##,
    )
    .unwrap();

    let resolved = resolve_token_categories(categories);
    insta::assert_debug_snapshot!(resolved);
}

#[test]
fn validates_reference_cycles() {
    let categories = parse_tokens_from_json(
        r##"{
  "color": {
    "a": { "value": "{color.b}" },
    "b": { "value": "{color.a}" }
  }
}"##,
    )
    .unwrap();
    let map = build_token_map(&categories);

    insta::assert_debug_snapshot!(validate_reference(&map, "color.a", Some("color.b")));
}

#[test]
fn renders_markdown_snapshot() {
    let categories = parse_tokens_from_json(
        r##"{
  "spacing": {
    "sm": { "value": "4px", "description": "Small gap" },
    "md": { "value": 8 }
  }
}"##,
    )
    .unwrap();

    insta::assert_snapshot!(generate_tokens_markdown(
        &categories,
        Some("2026-05-17T00:00:00.000Z")
    ));
}