summaryrefslogtreecommitdiff
path: root/tests/integration/publish_tests.rs
diff options
context:
space:
mode:
authorDivy Srivastava <dj.srivastava23@gmail.com>2024-02-23 07:56:34 +0530
committerGitHub <noreply@github.com>2024-02-23 07:56:34 +0530
commitf49abcc1ac3de72bf894ccfc0102d83ec19f1d46 (patch)
tree8a50b03bb1e1d2e9e8831620529ef328a5582041 /tests/integration/publish_tests.rs
parentae703041b1921affb7fa8a0aa865c6f302c72d6e (diff)
feat(publish): respect .gitignore during `deno publish` (#22514)
Files from `.gitignore`, global git config, `.git/info/exclude` and `deno.json`'s `exclude` are ignored.
Diffstat (limited to 'tests/integration/publish_tests.rs')
-rw-r--r--tests/integration/publish_tests.rs67
1 files changed, 66 insertions, 1 deletions
diff --git a/tests/integration/publish_tests.rs b/tests/integration/publish_tests.rs
index 61cb40fba..71bc838a8 100644
--- a/tests/integration/publish_tests.rs
+++ b/tests/integration/publish_tests.rs
@@ -216,6 +216,43 @@ itest!(config_flag {
});
#[test]
+fn ignores_gitignore() {
+ 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"
+ }));
+
+ temp_dir.join("main.ts").write("import './sub_dir/b.ts';");
+
+ let gitignore = temp_dir.join(".gitignore");
+ gitignore.write("ignored.ts\nsub_dir/ignored.wasm");
+
+ let sub_dir = temp_dir.join("sub_dir");
+ sub_dir.create_dir_all();
+ sub_dir.join("ignored.wasm").write("");
+ sub_dir.join("b.ts").write("export default {}");
+
+ temp_dir.join("ignored.ts").write("");
+
+ let output = context
+ .new_command()
+ .arg("publish")
+ .arg("--dry-run")
+ .arg("--token")
+ .arg("sadfasdf")
+ .run();
+ output.assert_exit_code(0);
+ let output = output.combined_output();
+ assert_contains!(output, "b.ts");
+ assert_contains!(output, "main.ts");
+ assert_not_contains!(output, "ignored.ts");
+ assert_not_contains!(output, "ignored.wasm");
+}
+
+#[test]
fn ignores_directories() {
let context = publish_context_builder().build();
let temp_dir = context.temp_dir().path();
@@ -261,6 +298,35 @@ fn ignores_directories() {
}
#[test]
+fn includes_directories_with_gitignore() {
+ 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", "main.ts" ]
+ }
+ }));
+
+ temp_dir.join(".gitignore").write("main.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();
+ output.assert_exit_code(0);
+ let output = output.combined_output();
+ assert_contains!(output, "main.ts");
+ assert_not_contains!(output, "ignored.ts");
+}
+
+#[test]
fn includes_directories() {
let context = publish_context_builder().build();
let temp_dir = context.temp_dir().path();
@@ -279,7 +345,6 @@ fn includes_directories() {
let output = context
.new_command()
.arg("publish")
- .arg("--log-level=debug")
.arg("--token")
.arg("sadfasdf")
.run();