mirror of
https://github.com/storytold/photocraft.git
synced 2026-10-30 19:22:07 +01:00
18 lines
756 B
Rust
18 lines
756 B
Rust
//! Index lookups must return the same spec, in the same order, as the registry's public slice.
|
|||
|
|
use photocraft_engine::commands;
|
||
|
|
|
||
|
|
#[test]
|
||
|
|
fn every_lookup_matches_the_first_linear_match() {
|
||
|
|
let specs = commands::command_specs();
|
||
|
|
for spec in specs {
|
||
|
|
let linear = specs.iter().find(|s| s.id == spec.id).unwrap();
|
||
|
|
assert!(std::ptr::eq(commands::find(spec.id).unwrap(), linear), "{}", spec.id);
|
||
|
|
// The id need not be a static string: control/MCP dispatch owns its input.
|
||
|
|
let owned = spec.id.to_string();
|
||
|
|
assert!(std::ptr::eq(commands::find(&owned).unwrap(), linear));
|
||
|
|
}
|
||
|
|
for id in ["", "missing.command", "FILE.NEW", "file.new\0", "💾"] {
|
||
|
|
assert!(commands::find(id).is_none(), "{id:?}");
|
||
|
|
}
|
||
|
|
}
|