diff --git a/crates/ps-qa/Cargo.toml b/crates/ps-qa/Cargo.toml index 07cfd28..d684584 100644 --- a/crates/ps-qa/Cargo.toml +++ b/crates/ps-qa/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "ps-qa" description = "Drive a running Blitz app through its MCP control socket and assert what the renderer did" -version = "0.5.11" +version = "0.5.12" edition = "2024" rust-version = "1.88" license = "MIT OR Apache-2.0" diff --git a/crates/ps-qa/src/target.rs b/crates/ps-qa/src/target.rs index 310bf51..18c3644 100644 --- a/crates/ps-qa/src/target.rs +++ b/crates/ps-qa/src/target.rs @@ -160,8 +160,28 @@ pub(crate) async fn locate_control( let mut candidates: Vec<_> = snapshot .nodes .iter() + /* + * The role gate is skipped for a selector that already names one + * exact node. + * + * `#id` and `@slot` identify a single element by what the author + * wrote, which is the reason `dom_id` is carried at all. Deciding + * first that only interactive roles are addressable threw those + * away before the selector was ever consulted, so a `