diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/integration/bench_tests.rs | 31 | ||||
-rw-r--r-- | tests/integration/fmt_tests.rs | 27 | ||||
-rw-r--r-- | tests/integration/lint_tests.rs | 25 | ||||
-rw-r--r-- | tests/integration/lsp_tests.rs | 4 | ||||
-rw-r--r-- | tests/integration/publish_tests.rs | 81 | ||||
-rw-r--r-- | tests/integration/test_tests.rs | 30 |
6 files changed, 178 insertions, 20 deletions
diff --git a/tests/integration/bench_tests.rs b/tests/integration/bench_tests.rs index 8621679dc..e0d3f8724 100644 --- a/tests/integration/bench_tests.rs +++ b/tests/integration/bench_tests.rs @@ -1,5 +1,6 @@ // Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. +use deno_core::serde_json::json; use deno_core::url::Url; use test_util as util; use test_util::itest; @@ -8,6 +9,7 @@ use util::assert_contains; use util::assert_not_contains; use util::env_vars_for_npm_tests; use util::TestContext; +use util::TestContextBuilder; itest!(overloads { args: "bench bench/overloads.ts", @@ -285,3 +287,32 @@ fn conditionally_loads_type_graph() { .run(); assert_not_contains!(output.combined_output(), "type_reference.d.ts"); } + +#[test] +fn opt_out_top_level_exclude_via_bench_unexclude() { + let context = TestContextBuilder::new().use_temp_cwd().build(); + let temp_dir = context.temp_dir().path(); + temp_dir.join("deno.json").write_json(&json!({ + "bench": { + "exclude": [ "!excluded.bench.ts" ] + }, + "exclude": [ "excluded.bench.ts", "actually_excluded.bench.ts" ] + })); + + temp_dir + .join("main.bench.ts") + .write("Deno.bench('test1', () => {});"); + temp_dir + .join("excluded.bench.ts") + .write("Deno.bench('test2', () => {});"); + temp_dir + .join("actually_excluded.bench.ts") + .write("Deno.bench('test3', () => {});"); + + let output = context.new_command().arg("bench").run(); + output.assert_exit_code(0); + let output = output.combined_output(); + assert_contains!(output, "main.bench.ts"); + assert_contains!(output, "excluded.bench.ts"); + assert_not_contains!(output, "actually_excluded.bench.ts"); +} diff --git a/tests/integration/fmt_tests.rs b/tests/integration/fmt_tests.rs index 6588ae10a..417454888 100644 --- a/tests/integration/fmt_tests.rs +++ b/tests/integration/fmt_tests.rs @@ -1,8 +1,10 @@ // Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. +use deno_core::serde_json::json; use test_util as util; use test_util::itest; use util::assert_contains; +use util::assert_not_contains; use util::PathRef; use util::TestContext; use util::TestContextBuilder; @@ -351,3 +353,28 @@ fn fmt_with_glob_config_and_flags() { assert_contains!(output, "Found 2 not formatted files in 2 files"); } + +#[test] +fn opt_out_top_level_exclude_via_fmt_unexclude() { + let context = TestContextBuilder::new().use_temp_cwd().build(); + let temp_dir = context.temp_dir().path(); + temp_dir.join("deno.json").write_json(&json!({ + "fmt": { + "exclude": [ "!excluded.ts" ] + }, + "exclude": [ "excluded.ts", "actually_excluded.ts" ] + })); + + temp_dir.join("main.ts").write("const a = 1;"); + temp_dir.join("excluded.ts").write("const a = 2;"); + temp_dir + .join("actually_excluded.ts") + .write("const a = 2;"); + + let output = context.new_command().arg("fmt").run(); + output.assert_exit_code(0); + let output = output.combined_output(); + assert_contains!(output, "main.ts"); + assert_contains!(output, "excluded.ts"); + assert_not_contains!(output, "actually_excluded.ts"); +} diff --git a/tests/integration/lint_tests.rs b/tests/integration/lint_tests.rs index ae0414262..a55fb1ef4 100644 --- a/tests/integration/lint_tests.rs +++ b/tests/integration/lint_tests.rs @@ -1,6 +1,8 @@ // Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. +use deno_core::serde_json::json; use test_util::assert_contains; +use test_util::assert_not_contains; use test_util::itest; use test_util::TestContextBuilder; @@ -252,3 +254,26 @@ itest!(no_slow_types_workspace { cwd: Some("lint/no_slow_types_workspace"), exit_code: 1, }); + +#[test] +fn opt_out_top_level_exclude_via_lint_unexclude() { + let context = TestContextBuilder::new().use_temp_cwd().build(); + let temp_dir = context.temp_dir().path(); + temp_dir.join("deno.json").write_json(&json!({ + "lint": { + "exclude": [ "!excluded.ts" ] + }, + "exclude": [ "excluded.ts", "actually_excluded.ts" ] + })); + + temp_dir.join("main.ts").write("const a = 1;"); + temp_dir.join("excluded.ts").write("const a = 2;"); + temp_dir.join("actually_excluded.ts").write("const a = 2;"); + + let output = context.new_command().arg("lint").run(); + output.assert_exit_code(1); + let output = output.combined_output(); + assert_contains!(output, "main.ts"); + assert_contains!(output, "excluded.ts"); + assert_not_contains!(output, "actually_excluded.ts"); +} diff --git a/tests/integration/lsp_tests.rs b/tests/integration/lsp_tests.rs index 8165cc86a..a7193ff59 100644 --- a/tests/integration/lsp_tests.rs +++ b/tests/integration/lsp_tests.rs @@ -1652,11 +1652,9 @@ fn lsp_workspace_disable_enable_paths() { .unwrap() }, name: "project".to_string(), - }]) - .set_deno_enable(false); + }]); }, json!({ "deno": { - "enable": false, "disablePaths": ["./worker/node.ts"], "enablePaths": ["./worker"], } }), diff --git a/tests/integration/publish_tests.rs b/tests/integration/publish_tests.rs index 2c3bf9ff6..4d2db8635 100644 --- a/tests/integration/publish_tests.rs +++ b/tests/integration/publish_tests.rs @@ -408,7 +408,7 @@ fn ignores_directories() { } #[test] -fn includes_directories_with_gitignore() { +fn not_include_gitignored_file_even_if_matched_in_include() { let context = publish_context_builder().build(); let temp_dir = context.temp_dir().path(); temp_dir.join("deno.json").write_json(&json!({ @@ -416,23 +416,75 @@ fn includes_directories_with_gitignore() { "version": "1.0.0", "exports": "./main.ts", "publish": { - "include": [ "deno.json", "main.ts" ] + // won't match ignored because it needs to be + // unexcluded via a negated glob in exclude + "include": [ "deno.json", "*.ts" ] } })); - temp_dir.join(".gitignore").write("main.ts"); + temp_dir.join(".gitignore").write("ignored.ts"); temp_dir.join("main.ts").write(""); temp_dir.join("ignored.ts").write(""); - let output = context - .new_command() - .arg("publish") - .arg("--token") - .arg("sadfasdf") - .run(); + let output = context.new_command().arg("publish").arg("--dry-run").run(); output.assert_exit_code(0); let output = output.combined_output(); assert_contains!(output, "main.ts"); + // it's gitignored + assert_not_contains!(output, "ignored.ts"); +} + +#[test] +fn includes_directories_with_gitignore_when_unexcluded() { + let context = publish_context_builder().build(); + let temp_dir = context.temp_dir().path(); + temp_dir.join("deno.json").write_json(&json!({ + "name": "@foo/bar", + "version": "1.0.0", + "exports": "./main.ts", + "publish": { + "include": [ "deno.json", "*.ts" ], + "exclude": [ "!ignored.ts" ] + } + })); + + temp_dir.join(".gitignore").write("ignored.ts"); + temp_dir.join("main.ts").write(""); + temp_dir.join("ignored.ts").write(""); + + let output = context.new_command().arg("publish").arg("--dry-run").run(); + output.assert_exit_code(0); + let output = output.combined_output(); + assert_contains!(output, "main.ts"); + assert_contains!(output, "ignored.ts"); +} + +#[test] +fn includes_unexcluded_sub_dir() { + let context = publish_context_builder().build(); + let temp_dir = context.temp_dir().path(); + temp_dir.join("deno.json").write_json(&json!({ + "name": "@foo/bar", + "version": "1.0.0", + "exports": "./included1.ts", + "publish": { + "exclude": [ + "ignored", + "!ignored/unexcluded", + ] + } + })); + + temp_dir.join("included1.ts").write(""); + temp_dir.join("ignored/unexcluded").create_dir_all(); + temp_dir.join("ignored/ignored.ts").write(""); + temp_dir.join("ignored/unexcluded/included2.ts").write(""); + + let output = context.new_command().arg("publish").arg("--dry-run").run(); + output.assert_exit_code(0); + let output = output.combined_output(); + assert_contains!(output, "included1.ts"); + assert_contains!(output, "included2.ts"); assert_not_contains!(output, "ignored.ts"); } @@ -465,7 +517,7 @@ fn includes_directories() { } #[test] -fn includes_dotenv() { +fn not_includes_gitignored_dotenv() { let context = publish_context_builder().build(); let temp_dir = context.temp_dir().path(); temp_dir.join("deno.json").write_json(&json!({ @@ -476,14 +528,9 @@ fn includes_dotenv() { temp_dir.join("main.ts").write(""); temp_dir.join(".env").write("FOO=BAR"); + temp_dir.join(".gitignore").write(".env"); - let output = context - .new_command() - .arg("publish") - .arg("--token") - .arg("sadfasdf") - .arg("--dry-run") - .run(); + let output = context.new_command().arg("publish").arg("--dry-run").run(); output.assert_exit_code(0); let output = output.combined_output(); assert_contains!(output, "main.ts"); diff --git a/tests/integration/test_tests.rs b/tests/integration/test_tests.rs index cd85fd102..d5768b5ba 100644 --- a/tests/integration/test_tests.rs +++ b/tests/integration/test_tests.rs @@ -1,5 +1,6 @@ // Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. +use deno_core::serde_json::json; use deno_core::url::Url; use test_util as util; use test_util::itest; @@ -668,3 +669,32 @@ itest!(test_include_relative_pattern_dot_slash { output: "test/relative_pattern_dot_slash/output.out", cwd: Some("test/relative_pattern_dot_slash"), }); + +#[test] +fn opt_out_top_level_exclude_via_test_unexclude() { + let context = TestContextBuilder::new().use_temp_cwd().build(); + let temp_dir = context.temp_dir().path(); + temp_dir.join("deno.json").write_json(&json!({ + "test": { + "exclude": [ "!excluded.test.ts" ] + }, + "exclude": [ "excluded.test.ts", "actually_excluded.test.ts" ] + })); + + temp_dir + .join("main.test.ts") + .write("Deno.test('test1', () => {});"); + temp_dir + .join("excluded.test.ts") + .write("Deno.test('test2', () => {});"); + temp_dir + .join("actually_excluded.test.ts") + .write("Deno.test('test3', () => {});"); + + let output = context.new_command().arg("test").run(); + output.assert_exit_code(0); + let output = output.combined_output(); + assert_contains!(output, "main.test.ts"); + assert_contains!(output, "excluded.test.ts"); + assert_not_contains!(output, "actually_excluded.test.ts"); +} |