diff options
Diffstat (limited to 'tests/integration/mod.rs')
-rw-r--r-- | tests/integration/mod.rs | 158 |
1 files changed, 158 insertions, 0 deletions
diff --git a/tests/integration/mod.rs b/tests/integration/mod.rs new file mode 100644 index 000000000..19796f245 --- /dev/null +++ b/tests/integration/mod.rs @@ -0,0 +1,158 @@ +// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. + +#[macro_export] +macro_rules! itest( +($name:ident {$( $key:ident: $value:expr,)*}) => { + #[test] + fn $name() { + let test = test_util::CheckOutputIntegrationTest { + $( + $key: $value, + )* + .. Default::default() + }; + let output = test.output(); + output.assert_exit_code(test.exit_code); + if !test.output.is_empty() { + assert!(test.output_str.is_none()); + output.assert_matches_file(test.output); + } else { + output.assert_matches_text(test.output_str.unwrap_or("")); + } + } +} +); + +#[macro_export] +macro_rules! itest_flaky( +($name:ident {$( $key:ident: $value:expr,)*}) => { + #[flaky_test::flaky_test] + fn $name() { + let test = test_util::CheckOutputIntegrationTest { + $( + $key: $value, + )* + .. Default::default() + }; + let output = test.output(); + output.assert_exit_code(test.exit_code); + if !test.output.is_empty() { + assert!(test.output_str.is_none()); + output.assert_matches_file(test.output); + } else { + output.assert_matches_text(test.output_str.unwrap_or("")); + } + } +} +); + +#[macro_export] +macro_rules! context( +({$( $key:ident: $value:expr,)*}) => { + test_util::TestContext::create(test_util::TestContextOptions { + $( + $key: $value, + )* + .. Default::default() + }) +} +); + +#[macro_export] +macro_rules! itest_steps( +($name:ident {$( $key:ident: $value:expr,)*}) => { + #[test] + fn $name() { + (test_util::CheckOutputIntegrationTestSteps { + $( + $key: $value, + )* + .. Default::default() + }).run() + } +} +); + +#[macro_export] +macro_rules! command_step( +({$( $key:ident: $value:expr,)*}) => { + test_util::CheckOutputIntegrationTestCommandStep { + $( + $key: $value, + )* + .. Default::default() + } +} +); + +// These files have `_tests.rs` suffix to make it easier to tell which file is +// the test (ex. `lint_tests.rs`) and which is the implementation (ex. `lint.rs`) +// when both are open, especially for two tabs in VS Code + +#[path = "bench_tests.rs"] +mod bench; +#[path = "bundle_tests.rs"] +mod bundle; +#[path = "cache_tests.rs"] +mod cache; +#[path = "cert_tests.rs"] +mod cert; +#[path = "check_tests.rs"] +mod check; +#[path = "compile_tests.rs"] +mod compile; +#[path = "coverage_tests.rs"] +mod coverage; +#[path = "doc_tests.rs"] +mod doc; +#[path = "eval_tests.rs"] +mod eval; +#[path = "flags_tests.rs"] +mod flags; +#[path = "fmt_tests.rs"] +mod fmt; +#[path = "info_tests.rs"] +mod info; +#[path = "init_tests.rs"] +mod init; +#[path = "inspector_tests.rs"] +mod inspector; +#[path = "install_tests.rs"] +mod install; +#[path = "js_unit_tests.rs"] +mod js_unit_tests; +#[path = "jsr_tests.rs"] +mod jsr; +#[path = "jupyter_tests.rs"] +mod jupyter; +#[path = "lint_tests.rs"] +mod lint; +#[path = "lsp_tests.rs"] +mod lsp; +#[path = "node_compat_tests.rs"] +mod node_compat_tests; +#[path = "node_unit_tests.rs"] +mod node_unit_tests; +#[path = "npm_tests.rs"] +mod npm; +#[path = "publish_tests.rs"] +mod publish; + +#[path = "repl_tests.rs"] +mod repl; +#[path = "run_tests.rs"] +mod run; +#[path = "shared_library_tests.rs"] +mod shared_library_tests; +#[path = "task_tests.rs"] +mod task; +#[path = "test_tests.rs"] +mod test; +#[path = "upgrade_tests.rs"] +mod upgrade; +#[path = "vendor_tests.rs"] +mod vendor; +#[path = "watcher_tests.rs"] +mod watcher; +#[path = "worker_tests.rs"] +mod worker; |