feat: prefetch visible interface descriptors
This commit is contained in:
@@ -58,18 +58,19 @@ fn real_http_filesystem_workflow_is_lazy_validator_safe_and_symlink_confined() {
|
||||
assert!(empty_directory.children.is_empty());
|
||||
assert!(!empty_directory.expanded);
|
||||
|
||||
// Keyboard-select the file and load its read interface and descriptor.
|
||||
runtime.app_mut().selected_path = "/hello.txt".into();
|
||||
runtime.app_mut().focus = Focus::Operations;
|
||||
runtime.app_mut().operation_cursor = 0;
|
||||
assert!(!runtime.handle_key(InputKey::Enter));
|
||||
settle(&mut runtime);
|
||||
let read_reference = runtime.app().entries["/hello.txt"]
|
||||
// Visible Objects have their interface descriptors prefetched before selection.
|
||||
let file_interfaces = runtime.app().entries["/hello.txt"]
|
||||
.object
|
||||
.as_ref()
|
||||
.expect("file object")
|
||||
.interfaces[0]
|
||||
.interfaces
|
||||
.clone();
|
||||
assert!(!file_interfaces.is_empty());
|
||||
for reference in &file_interfaces {
|
||||
assert_eq!(runtime.app().interfaces[reference].state, ViewState::Fresh);
|
||||
assert!(runtime.app().interfaces[reference].descriptor.is_some());
|
||||
}
|
||||
let read_reference = file_interfaces[0].clone();
|
||||
assert_eq!(
|
||||
runtime.app().interfaces[&read_reference]
|
||||
.descriptor
|
||||
@@ -80,9 +81,13 @@ fn real_http_filesystem_workflow_is_lazy_validator_safe_and_symlink_confined() {
|
||||
"read"
|
||||
);
|
||||
|
||||
// Descriptor-driven read editor, explicit confirmation, and execution.
|
||||
// Keyboard-select the already prefetched read operation.
|
||||
runtime.app_mut().selected_path = "/hello.txt".into();
|
||||
runtime.app_mut().focus = Focus::Operations;
|
||||
runtime.app_mut().operation_cursor = 1;
|
||||
runtime.handle_key(InputKey::Enter);
|
||||
assert!(!runtime.handle_key(InputKey::Enter));
|
||||
|
||||
// Descriptor-driven read editor, explicit confirmation, and execution.
|
||||
assert!(matches!(runtime.app().modal, Modal::Editor(_)));
|
||||
runtime.handle_key(InputKey::Enter);
|
||||
assert!(matches!(runtime.app().modal, Modal::Confirm { .. }));
|
||||
@@ -98,11 +103,8 @@ fn real_http_filesystem_workflow_is_lazy_validator_safe_and_symlink_confined() {
|
||||
assert_eq!(runtime.app().entries["/hello.txt"].state, ViewState::Fresh);
|
||||
runtime.app_mut().focus = Focus::Operations;
|
||||
|
||||
// Load the separately-qualified write interface and replace with the
|
||||
// Use the separately-qualified prefetched write interface and replace with the
|
||||
// automatically attached observed validator.
|
||||
runtime.app_mut().operation_cursor = 2;
|
||||
runtime.handle_key(InputKey::Enter);
|
||||
settle(&mut runtime);
|
||||
runtime.app_mut().operation_cursor = 3;
|
||||
runtime.handle_key(InputKey::Enter);
|
||||
set_only_field(&mut runtime, "dXBkYXRlZA=="); // "updated"
|
||||
|
||||
Reference in New Issue
Block a user