summaryrefslogtreecommitdiff
path: root/tests/integration
diff options
context:
space:
mode:
authorDavid Sherret <dsherret@users.noreply.github.com>2024-03-08 00:46:06 -0500
committerGitHub <noreply@github.com>2024-03-08 05:46:06 +0000
commit40089b37c0a98fdcfc5b44c5ecb2c390cd16e66c (patch)
treefc6c36219d338066f789798689244a7a402d837e /tests/integration
parent2c6e9107b6bd85acb249cbc802571a1c55b96227 (diff)
fix(publish): include explicitly specified .gitignored files and directories (#22790)
This allows explicitly overriding a .gitignore by specifying files and directories in "include". This does not apply to globs in an include as files matching those will still be gitignored. Additionally, individually gitignored files within an included directory will still be ignored.
Diffstat (limited to 'tests/integration')
-rw-r--r--tests/integration/publish_tests.rs31
1 files changed, 27 insertions, 4 deletions
diff --git a/tests/integration/publish_tests.rs b/tests/integration/publish_tests.rs
index 53bb6a376..28046d047 100644
--- a/tests/integration/publish_tests.rs
+++ b/tests/integration/publish_tests.rs
@@ -409,7 +409,7 @@ fn ignores_directories() {
}
#[test]
-fn not_include_gitignored_file_even_if_matched_in_include() {
+fn not_include_gitignored_file_unless_exact_match_in_include() {
let context = publish_context_builder().build();
let temp_dir = context.temp_dir().path();
temp_dir.join("deno.json").write_json(&json!({
@@ -417,22 +417,45 @@ fn not_include_gitignored_file_even_if_matched_in_include() {
"version": "1.0.0",
"exports": "./main.ts",
"publish": {
- // won't match ignored because it needs to be
+ // won't match ignored.ts because it needs to be
// unexcluded via a negated glob in exclude
- "include": [ "deno.json", "*.ts" ]
+ "include": [
+ "deno.json",
+ "*.ts",
+ "exact_include.ts",
+ "sub"
+ ]
}
}));
- temp_dir.join(".gitignore").write("ignored.ts");
+ temp_dir
+ .join(".gitignore")
+ .write("ignored.ts\nexact_include.ts\nsub/\nsub/ignored\n/sub_ignored\n");
temp_dir.join("main.ts").write("");
temp_dir.join("ignored.ts").write("");
+ temp_dir.join("exact_include.ts").write("");
+ let sub_dir = temp_dir.join("sub");
+ sub_dir.create_dir_all();
+ sub_dir.join("sub_included.ts").write("");
+ sub_dir.join("ignored.ts").write(""); // this one is gitignored
+ sub_dir.join("ignored").create_dir_all();
+ sub_dir.join("ignored").join("ignored_also.ts").write("");
+ let sub_ignored_dir = temp_dir.join("sub_ignored");
+ sub_ignored_dir.create_dir_all();
+ sub_ignored_dir.join("sub_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");
+ // will match this exact match
+ assert_contains!(output, "exact_include.ts");
+ // will include this because the sub directory is included
+ assert_contains!(output, "sub_included.ts");
// it's gitignored
assert_not_contains!(output, "ignored.ts");
+ assert_not_contains!(output, "ignored_also.ts");
+ assert_not_contains!(output, "sub_ignored.ts");
}
#[test]