mirror of
https://github.com/denoland/deno.git
synced 2024-11-21 15:04:11 -05:00
fix: don't prompt when using Deno.permissions.request
with --no-prompt
(#25811)
This commit is contained in:
parent
19a9990f60
commit
da7edf1c0c
3 changed files with 23 additions and 1 deletions
|
@ -476,6 +476,9 @@ impl<TQuery: QueryDescriptor> UnaryPermission<TQuery> {
|
|||
if state != PermissionState::Prompt {
|
||||
return state;
|
||||
}
|
||||
if !self.prompt {
|
||||
return PermissionState::Denied;
|
||||
}
|
||||
let mut message = String::with_capacity(40);
|
||||
message.push_str(&format!("{} access", TQuery::flag_name()));
|
||||
if let Some(desc) = desc {
|
||||
|
@ -3906,7 +3909,8 @@ mod tests {
|
|||
fn test_request() {
|
||||
set_prompter(Box::new(TestPrompter));
|
||||
let parser = TestPermissionDescriptorParser;
|
||||
let mut perms: Permissions = Permissions::none_without_prompt();
|
||||
let mut perms: Permissions = Permissions::none_with_prompt();
|
||||
let mut perms_no_prompt: Permissions = Permissions::none_without_prompt();
|
||||
let read_query =
|
||||
|path: &str| parser.parse_path_query(path).unwrap().into_read();
|
||||
let write_query =
|
||||
|
@ -3955,6 +3959,7 @@ mod tests {
|
|||
assert_eq!(perms.run.query(None), PermissionState::Prompt);
|
||||
prompt_value.set(false);
|
||||
assert_eq!(perms.run.request(Some(&run_query)), PermissionState::Granted);
|
||||
assert_eq!(perms_no_prompt.read.request(Some(&read_query("/foo"))), PermissionState::Denied);
|
||||
};
|
||||
}
|
||||
|
||||
|
|
|
@ -3512,6 +3512,22 @@ itest!(no_prompt_flag {
|
|||
output_str: Some(""),
|
||||
});
|
||||
|
||||
#[test]
|
||||
fn permission_request_with_no_prompt() {
|
||||
TestContext::default()
|
||||
.new_command()
|
||||
.env("NO_COLOR", "1")
|
||||
.args_vec([
|
||||
"run",
|
||||
"--quiet",
|
||||
"--no-prompt",
|
||||
"run/permission_request_no_prompt.ts",
|
||||
])
|
||||
.with_pty(|mut console| {
|
||||
console.expect("PermissionStatus { state: \"denied\", onchange: null }");
|
||||
});
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn deno_no_prompt_environment_variable() {
|
||||
let output = util::deno_cmd()
|
||||
|
|
1
tests/testdata/run/permission_request_no_prompt.ts
vendored
Normal file
1
tests/testdata/run/permission_request_no_prompt.ts
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
console.log(await Deno.permissions.request({ name: "read" }));
|
Loading…
Reference in a new issue