diff --git a/crates/rome_cli/src/execute/traverse.rs b/crates/rome_cli/src/execute/traverse.rs index 38a711a9d04..3f388a511ee 100644 --- a/crates/rome_cli/src/execute/traverse.rs +++ b/crates/rome_cli/src/execute/traverse.rs @@ -679,6 +679,7 @@ impl<'ctx, 'app> TraversalContext for TraversalOptions<'ctx, 'app> { TraversalMode::Check { .. } => { file_features.supports_for(&FeatureName::Lint) || file_features.supports_for(&FeatureName::Format) + || file_features.supports_for(&FeatureName::OrganizeImports) } TraversalMode::CI { .. } => { file_features.supports_for(&FeatureName::Lint) diff --git a/crates/rome_cli/tests/commands/check.rs b/crates/rome_cli/tests/commands/check.rs index 06e94cf9933..97c6bdb457e 100644 --- a/crates/rome_cli/tests/commands/check.rs +++ b/crates/rome_cli/tests/commands/check.rs @@ -1686,6 +1686,60 @@ import * as something from "../something"; )); } +#[test] +fn applies_organize_imports_from_cli() { + let mut fs = MemoryFileSystem::default(); + let mut console = BufferConsole::default(); + + let file_path = Path::new("check.js"); + let content = r#"import { lorem, foom, bar } from "foo"; +import * as something from "../something"; +"#; + let expected = r#"import * as something from "../something"; +import { bar, foom, lorem } from "foo"; +"#; + + fs.insert(file_path.into(), content.as_bytes()); + + let result = run_cli( + DynRef::Borrowed(&mut fs), + &mut console, + Args::from( + [ + ("check"), + ("--apply-unsafe"), + ("--formatter-enabled=false"), + ("--linter-enabled=false"), + ("--organize-imports-enabled=true"), + file_path.as_os_str().to_str().unwrap(), + ] + .as_slice(), + ), + ); + + assert!(result.is_ok(), "run_cli returned {result:?}"); + + let mut file = fs + .open(file_path) + .expect("formatting target file was removed by the CLI"); + + let mut content = String::new(); + file.read_to_string(&mut content) + .expect("failed to read file from memory FS"); + + assert_eq!(content, content); + + drop(file); + + assert_cli_snapshot(SnapshotPayload::new( + module_path!(), + "applies_organize_imports_from_cli", + fs, + console, + result, + )); +} + #[test] fn all_rules() { let mut fs = MemoryFileSystem::default(); diff --git a/crates/rome_cli/tests/snapshots/main_commands_check/applies_organize_imports_from_cli.snap b/crates/rome_cli/tests/snapshots/main_commands_check/applies_organize_imports_from_cli.snap new file mode 100644 index 00000000000..c162e911720 --- /dev/null +++ b/crates/rome_cli/tests/snapshots/main_commands_check/applies_organize_imports_from_cli.snap @@ -0,0 +1,19 @@ +--- +source: crates/rome_cli/tests/snap_test.rs +expression: content +--- +## `check.js` + +```js +import * as something from "../something"; +import { bar, foom, lorem } from "foo"; + +``` + +# Emitted Messages + +```block +Fixed 1 file(s) in