Skip to content
This repository has been archived by the owner on Aug 31, 2023. It is now read-only.

Commit

Permalink
fix(rome_cli): correctly check for organize imports support
Browse files Browse the repository at this point in the history
  • Loading branch information
ematipico committed Jul 20, 2023
1 parent 9360776 commit 2e1e36a
Show file tree
Hide file tree
Showing 3 changed files with 74 additions and 0 deletions.
1 change: 1 addition & 0 deletions crates/rome_cli/src/execute/traverse.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
54 changes: 54 additions & 0 deletions crates/rome_cli/tests/commands/check.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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();
Expand Down
Original file line number Diff line number Diff line change
@@ -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 <TIME>
```


0 comments on commit 2e1e36a

Please sign in to comment.