()
| 497 | |
| 498 | #[test] |
| 499 | fn resolve_inheritance_chain() { |
| 500 | let store = RoleStore::new(); |
| 501 | store |
| 502 | .create_role("base", TenantId::new(1), Some("readonly"), None) |
| 503 | .unwrap(); |
| 504 | store |
| 505 | .create_role("mid", TenantId::new(1), Some("base"), None) |
| 506 | .unwrap(); |
| 507 | store |
| 508 | .create_role("leaf", TenantId::new(1), Some("mid"), None) |
| 509 | .unwrap(); |
| 510 | |
| 511 | let chain = store |
| 512 | .resolve_inheritance(&Role::Custom("leaf".into())) |
| 513 | .unwrap(); |
| 514 | assert_eq!(chain.len(), 4); // leaf → mid → base → readonly |
| 515 | } |
| 516 | |
| 517 | #[test] |
| 518 | fn resolve_builtin_no_chain() { |
nothing calls this directly
no test coverage detected