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