From 4bea1d06c7ddb177ed20e0f32b70d7ff889871ab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bartek=20Iwa=C5=84czuk?= Date: Sat, 26 Feb 2022 14:49:50 +0100 Subject: [PATCH] fix(test): use --no-prompt by default (#13777) This commit changes "deno test" subcommand, to always never prompt for permissions (ie. as if "deno test" was run with "--no-prompt" flag). --- cli/flags.rs | 10 ++++++++++ cli/tests/integration/test_tests.rs | 12 ++++++++++++ cli/tests/testdata/test/no_prompt_by_default.out | 7 +++++++ cli/tests/testdata/test/no_prompt_by_default.ts | 3 +++ .../testdata/test/no_prompt_with_denied_perms.out | 7 +++++++ .../testdata/test/no_prompt_with_denied_perms.ts | 3 +++ 6 files changed, 42 insertions(+) create mode 100644 cli/tests/testdata/test/no_prompt_by_default.out create mode 100644 cli/tests/testdata/test/no_prompt_by_default.ts create mode 100644 cli/tests/testdata/test/no_prompt_with_denied_perms.out create mode 100644 cli/tests/testdata/test/no_prompt_with_denied_perms.ts diff --git a/cli/flags.rs b/cli/flags.rs index 05c017e81c..614a975b1a 100644 --- a/cli/flags.rs +++ b/cli/flags.rs @@ -2199,6 +2199,9 @@ fn run_parse(flags: &mut Flags, matches: &clap::ArgMatches) { fn test_parse(flags: &mut Flags, matches: &clap::ArgMatches) { runtime_args_parse(flags, matches, true, true); + // NOTE: `deno test` always uses `--no-prompt`, tests shouldn't ever do + // interactive prompts, unless done by user code + flags.no_prompt = true; let ignore = match matches.values_of("ignore") { Some(f) => f.map(PathBuf::from).collect(), @@ -4453,6 +4456,7 @@ mod tests { trace_ops: true, }), unstable: true, + no_prompt: true, coverage_dir: Some("cov".to_string()), location: Some(Url::parse("https://foo/").unwrap()), allow_net: Some(vec![]), @@ -4521,6 +4525,7 @@ mod tests { concurrent_jobs: NonZeroUsize::new(4).unwrap(), trace_ops: false, }), + no_prompt: true, ..Flags::default() } ); @@ -4547,6 +4552,7 @@ mod tests { concurrent_jobs: NonZeroUsize::new(1).unwrap(), trace_ops: false, }), + no_prompt: true, ..Flags::default() } ); @@ -4577,6 +4583,7 @@ mod tests { concurrent_jobs: NonZeroUsize::new(1).unwrap(), trace_ops: false, }), + no_prompt: true, enable_testing_features: true, ..Flags::default() } @@ -4601,6 +4608,7 @@ mod tests { concurrent_jobs: NonZeroUsize::new(1).unwrap(), trace_ops: false, }), + no_prompt: true, watch: None, ..Flags::default() } @@ -4625,6 +4633,7 @@ mod tests { concurrent_jobs: NonZeroUsize::new(1).unwrap(), trace_ops: false, }), + no_prompt: true, watch: Some(vec![]), ..Flags::default() } @@ -4652,6 +4661,7 @@ mod tests { }), watch: Some(vec![]), no_clear_screen: true, + no_prompt: true, ..Flags::default() } ); diff --git a/cli/tests/integration/test_tests.rs b/cli/tests/integration/test_tests.rs index c80406935a..b19cba8f44 100644 --- a/cli/tests/integration/test_tests.rs +++ b/cli/tests/integration/test_tests.rs @@ -262,3 +262,15 @@ itest!(steps_invalid_usage { exit_code: 1, output: "test/steps/invalid_usage.out", }); + +itest!(no_prompt_by_default { + args: "test test/no_prompt_by_default.ts", + exit_code: 1, + output: "test/no_prompt_by_default.out", +}); + +itest!(no_prompt_with_denied_perms { + args: "test --allow-read test/no_prompt_with_denied_perms.ts", + exit_code: 1, + output: "test/no_prompt_with_denied_perms.out", +}); diff --git a/cli/tests/testdata/test/no_prompt_by_default.out b/cli/tests/testdata/test/no_prompt_by_default.out new file mode 100644 index 0000000000..02f1625fa4 --- /dev/null +++ b/cli/tests/testdata/test/no_prompt_by_default.out @@ -0,0 +1,7 @@ +Check [WILDCARD]/no_prompt_by_default.ts +running 1 test from [WILDCARD]/no_prompt_by_default.ts +test no prompt ... +test result: FAILED. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out ([WILDCARD]) + +error: Uncaught (in promise) PermissionDenied: Requires read access to "./some_file.txt", run again with the --allow-read flag +[WILDCARD] diff --git a/cli/tests/testdata/test/no_prompt_by_default.ts b/cli/tests/testdata/test/no_prompt_by_default.ts new file mode 100644 index 0000000000..816454a2e3 --- /dev/null +++ b/cli/tests/testdata/test/no_prompt_by_default.ts @@ -0,0 +1,3 @@ +Deno.test("no prompt", () => { + Deno.readTextFile("./some_file.txt"); +}); diff --git a/cli/tests/testdata/test/no_prompt_with_denied_perms.out b/cli/tests/testdata/test/no_prompt_with_denied_perms.out new file mode 100644 index 0000000000..07a7eb6a29 --- /dev/null +++ b/cli/tests/testdata/test/no_prompt_with_denied_perms.out @@ -0,0 +1,7 @@ +Check [WILDCARD]/no_prompt_with_denied_perms.ts +running 1 test from [WILDCARD]/no_prompt_with_denied_perms.ts +test no prompt ... +test result: FAILED. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out ([WILDCARD]) + +error: Uncaught (in promise) PermissionDenied: Requires read access to "./some_file.txt", run again with the --allow-read flag +[WILDCARD] diff --git a/cli/tests/testdata/test/no_prompt_with_denied_perms.ts b/cli/tests/testdata/test/no_prompt_with_denied_perms.ts new file mode 100644 index 0000000000..ee3736cffd --- /dev/null +++ b/cli/tests/testdata/test/no_prompt_with_denied_perms.ts @@ -0,0 +1,3 @@ +Deno.test("no prompt", { permissions: { read: false } }, () => { + Deno.readTextFile("./some_file.txt"); +});