diff options
Diffstat (limited to 'cli/ops/testing.rs')
-rw-r--r-- | cli/ops/testing.rs | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/cli/ops/testing.rs b/cli/ops/testing.rs index b6fd29fc7..e5c0a2b99 100644 --- a/cli/ops/testing.rs +++ b/cli/ops/testing.rs @@ -17,7 +17,7 @@ use deno_core::ModuleSpecifier; use deno_core::OpState; use deno_runtime::permissions::create_child_permissions; use deno_runtime::permissions::ChildPermissionsArg; -use deno_runtime::permissions::Permissions; +use deno_runtime::permissions::PermissionsContainer; use serde::Deserialize; use serde::Deserializer; use serde::Serialize; @@ -50,7 +50,7 @@ pub fn init( } #[derive(Clone)] -struct PermissionsHolder(Uuid, Permissions); +struct PermissionsHolder(Uuid, PermissionsContainer); #[op] pub fn op_pledge_test_permissions( @@ -58,8 +58,12 @@ pub fn op_pledge_test_permissions( args: ChildPermissionsArg, ) -> Result<Uuid, AnyError> { let token = Uuid::new_v4(); - let parent_permissions = state.borrow_mut::<Permissions>(); - let worker_permissions = create_child_permissions(parent_permissions, args)?; + let parent_permissions = state.borrow_mut::<PermissionsContainer>(); + let worker_permissions = { + let mut parent_permissions = parent_permissions.0.lock(); + let perms = create_child_permissions(&mut parent_permissions, args)?; + PermissionsContainer::new(perms) + }; let parent_permissions = parent_permissions.clone(); if state.try_take::<PermissionsHolder>().is_some() { @@ -68,7 +72,7 @@ pub fn op_pledge_test_permissions( state.put::<PermissionsHolder>(PermissionsHolder(token, parent_permissions)); // NOTE: This call overrides current permission set for the worker - state.put::<Permissions>(worker_permissions); + state.put::<PermissionsContainer>(worker_permissions); Ok(token) } @@ -84,7 +88,7 @@ pub fn op_restore_test_permissions( } let permissions = permissions_holder.1; - state.put::<Permissions>(permissions); + state.put::<PermissionsContainer>(permissions); Ok(()) } else { Err(generic_error("no permissions to restore")) |