diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/integration/publish_tests.rs | 31 |
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] |