Skip to content

Commit

Permalink
fix(outdated): error when there are no config files (#27306)
Browse files Browse the repository at this point in the history
This commit changes "deno outdated" subcommand to
error out if run in a directory that has no config file 
(including parent directories). This matches
"pnpm" behavior.

Also added tests for filtering that yields no results,
to ensure that it exists cleanly, that also matches "pnpm"
behavior.

Closes #27287

---------

Signed-off-by: Bartek Iwańczuk <biwanczuk@gmail.com>
Co-authored-by: David Sherret <dsherret@users.noreply.github.com>
  • Loading branch information
bartlomieju and dsherret authored Dec 10, 2024
1 parent fe1be71 commit 7c8b55b
Show file tree
Hide file tree
Showing 5 changed files with 46 additions and 0 deletions.
10 changes: 10 additions & 0 deletions cli/tools/registry/pm/outdated.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
use std::collections::HashSet;
use std::sync::Arc;

use deno_core::anyhow::bail;
use deno_core::error::AnyError;
use deno_semver::package::PackageNv;
use deno_semver::package::PackageReq;
Expand Down Expand Up @@ -197,6 +198,15 @@ pub async fn outdated(
let jsr_fetch_resolver =
Arc::new(JsrFetchResolver::new(file_fetcher.clone()));

if !cli_options.start_dir.has_deno_json()
&& !cli_options.start_dir.has_pkg_json()
{
bail!(
"No deno.json or package.json in \"{}\".",
cli_options.initial_cwd().display(),
);
}

let args = dep_manager_args(
&factory,
cli_options,
Expand Down
10 changes: 10 additions & 0 deletions tests/specs/update/deno_json/__test__.jsonc
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,11 @@
"args": "outdated",
"output": "outdated.out"
},
{
// Filtering that matches nothing, should exit cleanly
"args": "outdated foobar",
"output": ""
},
{
// Respect `--quiet flag and don't print hint how to update
"args": "outdated --quiet",
Expand All @@ -43,6 +48,11 @@
{
"args": "outdated --compatible",
"output": "outdated_compatible.out"
},
{
// Filtering that matches nothing, should exit cleanly
"args": "outdated --compatible foobar",
"output": ""
}
]
},
Expand Down
10 changes: 10 additions & 0 deletions tests/specs/update/mixed_workspace/__test__.jsonc
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,11 @@
{
"args": "outdated",
"output": "print_outdated/root.out"
},
{
// Filtering that matches nothing, should exit cleanly
"args": "outdated foobar",
"output": ""
}
]
},
Expand All @@ -38,6 +43,11 @@
{
"args": "outdated --recursive",
"output": "print_outdated/recursive.out"
},
{
// Filtering that matches nothing, should exit cleanly
"args": "outdated foobar",
"output": ""
}
]
},
Expand Down
6 changes: 6 additions & 0 deletions tests/specs/update/no_config_file/__test__.jsonc
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"tempDir": true,
"args": "outdated",
"exitCode": 1,
"output": "error: No deno.json or package.json in \"[WILDLINE]\".\n"
}
10 changes: 10 additions & 0 deletions tests/specs/update/package_json/__test__.jsonc
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,11 @@
{
"args": "outdated",
"output": "outdated.out"
},
{
// Filtering that matches nothing, should exit cleanly
"args": "outdated foobar",
"output": ""
}
]
},
Expand All @@ -37,6 +42,11 @@
{
"args": "outdated --compatible",
"output": "outdated_compatible.out"
},
{
// Filtering that matches nothing, should exit cleanly
"args": "outdated --compatible foobar",
"output": ""
}
]
},
Expand Down

0 comments on commit 7c8b55b

Please sign in to comment.