summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/integration/bench_tests.rs31
-rw-r--r--tests/integration/fmt_tests.rs27
-rw-r--r--tests/integration/lint_tests.rs25
-rw-r--r--tests/integration/lsp_tests.rs4
-rw-r--r--tests/integration/publish_tests.rs81
-rw-r--r--tests/integration/test_tests.rs30
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");
+}