summaryrefslogtreecommitdiff
path: root/cli/test_runner.rs
diff options
context:
space:
mode:
Diffstat (limited to 'cli/test_runner.rs')
-rw-r--r--cli/test_runner.rs173
1 files changed, 0 insertions, 173 deletions
diff --git a/cli/test_runner.rs b/cli/test_runner.rs
deleted file mode 100644
index cd8a394c5..000000000
--- a/cli/test_runner.rs
+++ /dev/null
@@ -1,173 +0,0 @@
-// Copyright 2018-2020 the Deno authors. All rights reserved. MIT license.
-
-use crate::fs_util;
-use crate::installer::is_remote_url;
-use deno_core::error::AnyError;
-use deno_core::serde_json::json;
-use deno_core::url::Url;
-use std::path::Path;
-use std::path::PathBuf;
-
-fn is_supported(p: &Path) -> bool {
- use std::path::Component;
- if let Some(Component::Normal(basename_os_str)) = p.components().next_back() {
- let basename = basename_os_str.to_string_lossy();
- basename.ends_with("_test.ts")
- || basename.ends_with("_test.tsx")
- || basename.ends_with("_test.js")
- || basename.ends_with("_test.mjs")
- || basename.ends_with("_test.jsx")
- || basename.ends_with(".test.ts")
- || basename.ends_with(".test.tsx")
- || basename.ends_with(".test.js")
- || basename.ends_with(".test.mjs")
- || basename.ends_with(".test.jsx")
- || basename == "test.ts"
- || basename == "test.tsx"
- || basename == "test.js"
- || basename == "test.mjs"
- || basename == "test.jsx"
- } else {
- false
- }
-}
-
-pub fn prepare_test_modules_urls(
- include: Vec<String>,
- root_path: &PathBuf,
-) -> Result<Vec<Url>, AnyError> {
- let (include_paths, include_urls): (Vec<String>, Vec<String>) =
- include.into_iter().partition(|n| !is_remote_url(n));
-
- let mut prepared = vec![];
-
- for path in include_paths {
- let p = fs_util::normalize_path(&root_path.join(path));
- if p.is_dir() {
- let test_files =
- crate::fs_util::collect_files(vec![p], vec![], is_supported).unwrap();
- let test_files_as_urls = test_files
- .iter()
- .map(|f| Url::from_file_path(f).unwrap())
- .collect::<Vec<Url>>();
- prepared.extend(test_files_as_urls);
- } else {
- let url = Url::from_file_path(p).unwrap();
- prepared.push(url);
- }
- }
-
- for remote_url in include_urls {
- let url = Url::parse(&remote_url)?;
- prepared.push(url);
- }
-
- Ok(prepared)
-}
-
-pub fn render_test_file(
- modules: Vec<Url>,
- fail_fast: bool,
- quiet: bool,
- filter: Option<String>,
-) -> String {
- let mut test_file = "".to_string();
-
- for module in modules {
- test_file.push_str(&format!("import \"{}\";\n", module.to_string()));
- }
-
- let options = if let Some(filter) = filter {
- json!({ "failFast": fail_fast, "reportToConsole": !quiet, "disableLog": quiet, "filter": filter })
- } else {
- json!({ "failFast": fail_fast, "reportToConsole": !quiet, "disableLog": quiet })
- };
-
- test_file.push_str("// @ts-ignore\n");
-
- test_file.push_str(&format!(
- "await Deno[Deno.internal].runTests({});\n",
- options
- ));
-
- test_file
-}
-
-#[cfg(test)]
-mod tests {
- use super::*;
-
- #[test]
- fn test_prepare_test_modules_urls() {
- let test_data_path = test_util::root_path().join("cli/tests/subdir");
- let mut matched_urls = prepare_test_modules_urls(
- vec![
- "https://example.com/colors_test.ts".to_string(),
- "./mod1.ts".to_string(),
- "./mod3.js".to_string(),
- "subdir2/mod2.ts".to_string(),
- "http://example.com/printf_test.ts".to_string(),
- ],
- &test_data_path,
- )
- .unwrap();
- let test_data_url =
- Url::from_file_path(test_data_path).unwrap().to_string();
-
- let expected: Vec<Url> = vec![
- format!("{}/mod1.ts", test_data_url),
- format!("{}/mod3.js", test_data_url),
- format!("{}/subdir2/mod2.ts", test_data_url),
- "http://example.com/printf_test.ts".to_string(),
- "https://example.com/colors_test.ts".to_string(),
- ]
- .into_iter()
- .map(|f| Url::parse(&f).unwrap())
- .collect();
- matched_urls.sort();
- assert_eq!(matched_urls, expected);
- }
-
- #[test]
- fn test_is_supported() {
- assert!(is_supported(Path::new("tests/subdir/foo_test.ts")));
- assert!(is_supported(Path::new("tests/subdir/foo_test.tsx")));
- assert!(is_supported(Path::new("tests/subdir/foo_test.js")));
- assert!(is_supported(Path::new("tests/subdir/foo_test.jsx")));
- assert!(is_supported(Path::new("bar/foo.test.ts")));
- assert!(is_supported(Path::new("bar/foo.test.tsx")));
- assert!(is_supported(Path::new("bar/foo.test.js")));
- assert!(is_supported(Path::new("bar/foo.test.jsx")));
- assert!(is_supported(Path::new("foo/bar/test.js")));
- assert!(is_supported(Path::new("foo/bar/test.jsx")));
- assert!(is_supported(Path::new("foo/bar/test.ts")));
- assert!(is_supported(Path::new("foo/bar/test.tsx")));
- assert!(!is_supported(Path::new("README.md")));
- assert!(!is_supported(Path::new("lib/typescript.d.ts")));
- assert!(!is_supported(Path::new("notatest.js")));
- assert!(!is_supported(Path::new("NotAtest.ts")));
- }
-
- #[test]
- fn supports_dirs() {
- let root = test_util::root_path().join("std").join("http");
- println!("root {:?}", root);
- let mut matched_urls =
- prepare_test_modules_urls(vec![".".to_string()], &root).unwrap();
- matched_urls.sort();
- let root_url = Url::from_file_path(root).unwrap().to_string();
- println!("root_url {}", root_url);
- let expected: Vec<Url> = vec![
- format!("{}/_io_test.ts", root_url),
- format!("{}/cookie_test.ts", root_url),
- format!("{}/file_server_test.ts", root_url),
- format!("{}/racing_server_test.ts", root_url),
- format!("{}/server_test.ts", root_url),
- format!("{}/test.ts", root_url),
- ]
- .into_iter()
- .map(|f| Url::parse(&f).unwrap())
- .collect();
- assert_eq!(matched_urls, expected);
- }
-}