mirror of
https://github.com/denoland/deno.git
synced 2024-11-25 15:29:32 -05:00
chore: provide error message when a deno.json will be auto-discovered by the test suite (#21315)
This commit is contained in:
parent
d8961a9dfe
commit
aadd369589
2 changed files with 36 additions and 1 deletions
|
@ -32,6 +32,37 @@ use crate::testdata_path;
|
||||||
use crate::HttpServerGuard;
|
use crate::HttpServerGuard;
|
||||||
use crate::TempDir;
|
use crate::TempDir;
|
||||||
|
|
||||||
|
// Gives the developer a nice error message if they have a deno configuration
|
||||||
|
// file that will be auto-discovered by the tests and cause a lot of failures.
|
||||||
|
static HAS_DENO_JSON_IN_WORKING_DIR_ERR: once_cell::sync::Lazy<Option<String>> =
|
||||||
|
once_cell::sync::Lazy::new(|| {
|
||||||
|
let testdata_path = testdata_path();
|
||||||
|
let mut current_dir = testdata_path.as_path();
|
||||||
|
let deno_json_names = ["deno.json", "deno.jsonc"];
|
||||||
|
loop {
|
||||||
|
for name in deno_json_names {
|
||||||
|
let deno_json_path = current_dir.join(name);
|
||||||
|
if deno_json_path.exists() {
|
||||||
|
return Some(format!(
|
||||||
|
concat!(
|
||||||
|
"Found deno configuration file at {}. The test suite relies on ",
|
||||||
|
"a deno.json not existing in any ancestor directory. Please ",
|
||||||
|
"delete this file so the tests won't auto-discover it.",
|
||||||
|
),
|
||||||
|
deno_json_path.display(),
|
||||||
|
));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if let Some(parent) = current_dir.parent() {
|
||||||
|
current_dir = parent;
|
||||||
|
} else {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
None
|
||||||
|
});
|
||||||
|
|
||||||
#[derive(Default)]
|
#[derive(Default)]
|
||||||
pub struct TestContextBuilder {
|
pub struct TestContextBuilder {
|
||||||
use_http_server: bool,
|
use_http_server: bool,
|
||||||
|
@ -121,6 +152,10 @@ impl TestContextBuilder {
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn build(&self) -> TestContext {
|
pub fn build(&self) -> TestContext {
|
||||||
|
if let Some(err) = &*HAS_DENO_JSON_IN_WORKING_DIR_ERR {
|
||||||
|
panic!("{}", err);
|
||||||
|
}
|
||||||
|
|
||||||
let temp_dir_path = self
|
let temp_dir_path = self
|
||||||
.temp_dir_path
|
.temp_dir_path
|
||||||
.clone()
|
.clone()
|
||||||
|
|
|
@ -45,7 +45,7 @@ impl Pty {
|
||||||
.contains("exit using ctrl+d, ctrl+c, or close()")
|
.contains("exit using ctrl+d, ctrl+c, or close()")
|
||||||
},
|
},
|
||||||
// it sometimes takes a while to startup on the CI, so use a longer timeout
|
// it sometimes takes a while to startup on the CI, so use a longer timeout
|
||||||
Duration::from_secs(30),
|
Duration::from_secs(60),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue