Skip to content

Commit b9922b6

Browse files
authored
chore: add test case for config extends in biome_cli (#6081)
1 parent 911cd50 commit b9922b6

File tree

4 files changed

+139
-2
lines changed

4 files changed

+139
-2
lines changed

Cargo.lock

Lines changed: 0 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

crates/biome_analyze/Cargo.toml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@ indexmap = { workspace = true }
2626
rustc-hash = { workspace = true }
2727
schemars = { workspace = true, optional = true }
2828
serde = { workspace = true, features = ["derive"], optional = true }
29-
tracing = { workspace = true }
3029

3130
[features]
3231
schema = ["dep:schemars", "biome_console/schema", "serde"]

crates/biome_cli/tests/cases/config_extends.rs

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,65 @@ fn extends_config_ok_formatter_no_linter() {
4444
));
4545
}
4646

47+
#[test]
48+
fn extends_config_ok_from_npm_package() {
49+
let mut fs = MemoryFileSystem::default();
50+
let mut console = BufferConsole::default();
51+
52+
let biome_json = Utf8Path::new("biome.json");
53+
fs.insert(
54+
biome_json.into(),
55+
r#"{ "extends": ["@shared/format/biome", "@shared/linter/biome"] }"#,
56+
);
57+
58+
fs.insert(
59+
"node_modules/@shared/format/biome.json".into(),
60+
r#"{ "javascript": { "formatter": { "quoteStyle": "single" } } }"#,
61+
);
62+
fs.insert(
63+
"node_modules/@shared/format/package.json".into(),
64+
r#"{
65+
"name": "@shared/format",
66+
"exports": {
67+
"./biome": "./biome.json"
68+
}
69+
}"#,
70+
);
71+
72+
fs.insert(
73+
"node_modules/@shared/linter/biome.jsonc".into(),
74+
r#"{ "linter": { "enabled": false, } }"#,
75+
);
76+
fs.insert(
77+
"node_modules/@shared/linter/package.json".into(),
78+
r#"{
79+
"name": "@shared/linter",
80+
"exports": {
81+
"./biome": "./biome.jsonc"
82+
}
83+
}"#,
84+
);
85+
86+
let test_file = Utf8Path::new("test.js");
87+
fs.insert(test_file.into(), r#"debugger; console.log("string"); "#);
88+
89+
let (fs, result) = run_cli(
90+
fs,
91+
&mut console,
92+
Args::from(["check", test_file.as_str()].as_slice()),
93+
);
94+
95+
assert!(result.is_err(), "run_cli returned {result:?}");
96+
97+
assert_cli_snapshot(SnapshotPayload::new(
98+
module_path!(),
99+
"extends_config_ok_from_npm_package",
100+
fs,
101+
console,
102+
result,
103+
));
104+
}
105+
47106
#[test]
48107
fn extends_config_ok_linter_not_formatter() {
49108
let mut fs = MemoryFileSystem::default();
Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
---
2+
source: crates/biome_cli/tests/snap_test.rs
3+
expression: redactor(content)
4+
---
5+
## `node_modules/@shared/linter/biome.jsonc`
6+
7+
```json
8+
{ "linter": { "enabled": false } }
9+
```
10+
11+
## `biome.json`
12+
13+
```json
14+
{ "extends": ["@shared/format/biome", "@shared/linter/biome"] }
15+
```
16+
17+
## `node_modules/@shared/format/biome.json`
18+
19+
```json
20+
{ "javascript": { "formatter": { "quoteStyle": "single" } } }
21+
```
22+
23+
## `node_modules/@shared/format/package.json`
24+
25+
```json
26+
{
27+
"name": "@shared/format",
28+
"exports": {
29+
"./biome": "./biome.json"
30+
}
31+
}
32+
```
33+
34+
## `node_modules/@shared/linter/package.json`
35+
36+
```json
37+
{
38+
"name": "@shared/linter",
39+
"exports": {
40+
"./biome": "./biome.jsonc"
41+
}
42+
}
43+
```
44+
45+
## `test.js`
46+
47+
```js
48+
debugger; console.log("string");
49+
```
50+
51+
# Termination Message
52+
53+
```block
54+
check ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
55+
56+
× Some errors were emitted while running checks.
57+
58+
59+
60+
```
61+
62+
# Emitted Messages
63+
64+
```block
65+
test.js format ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
66+
67+
× Formatter would have printed the following content:
68+
69+
1 │ - debugger;·console.log("string");·
70+
1 │ + debugger;
71+
2 │ + console.log('string');
72+
3 │ +
73+
74+
75+
```
76+
77+
```block
78+
Checked 1 file in <TIME>. No fixes applied.
79+
Found 1 error.
80+
```

0 commit comments

Comments
 (0)