summaryrefslogtreecommitdiff
path: root/cli/tests/integration/publish_tests.rs
diff options
context:
space:
mode:
authorDavid Sherret <dsherret@users.noreply.github.com>2024-01-08 18:51:49 -0500
committerGitHub <noreply@github.com>2024-01-08 18:51:49 -0500
commit0efb17b2cbd326abec1a053fb0eb81ce5c881eea (patch)
tree9016a4a58ee856ad7290802495d8e7cea7814a88 /cli/tests/integration/publish_tests.rs
parentea5c9a338325de338b8741989627983f4b00f21f (diff)
fix(unstable/tar): skip node_modules, .git, and config "exclude" (#21816)
Diffstat (limited to 'cli/tests/integration/publish_tests.rs')
-rw-r--r--cli/tests/integration/publish_tests.rs53
1 files changed, 53 insertions, 0 deletions
diff --git a/cli/tests/integration/publish_tests.rs b/cli/tests/integration/publish_tests.rs
index 5465c0838..912955782 100644
--- a/cli/tests/integration/publish_tests.rs
+++ b/cli/tests/integration/publish_tests.rs
@@ -1,5 +1,10 @@
// 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::TestContextBuilder;
+
static TEST_REGISTRY_URL: &str = "http://127.0.0.1:4250";
pub fn env_vars_for_registry() -> Vec<(String, String)> {
@@ -29,3 +34,51 @@ itest!(successful {
http_server: true,
temp_cwd: true,
});
+
+#[test]
+fn ignores_directories() {
+ 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",
+ "exclude": [ "ignore" ],
+ "exports": "main_included.ts"
+ }));
+
+ let ignored_dirs = vec![
+ temp_dir.join(".git"),
+ temp_dir.join("node_modules"),
+ temp_dir.join("ignore"),
+ ];
+ for ignored_dir in ignored_dirs {
+ ignored_dir.create_dir_all();
+ ignored_dir.join("ignored.ts").write("");
+ }
+
+ let sub_dir = temp_dir.join("sub_dir");
+ sub_dir.create_dir_all();
+ sub_dir.join("sub_included.ts").write("");
+
+ temp_dir.join("main_included.ts").write("");
+
+ let output = context
+ .new_command()
+ .arg("publish")
+ .arg("--log-level=debug")
+ .arg("--token")
+ .arg("sadfasdf")
+ .arg(temp_dir)
+ .run();
+ output.assert_exit_code(0);
+ let output = output.combined_output();
+ assert_contains!(output, "sub_included.ts");
+ assert_contains!(output, "main_included.ts");
+ assert_not_contains!(output, "ignored.ts");
+}
+
+fn publish_context_builder() -> TestContextBuilder {
+ TestContextBuilder::new()
+ .use_http_server()
+ .envs(env_vars_for_registry())
+}