Skip to content

Commit 2c5ce9b

Browse files
authored
feat(experimental): analyze nesting depths (#468)
closes #466
1 parent 205c4c1 commit 2c5ce9b

File tree

6 files changed

+737
-463
lines changed

6 files changed

+737
-463
lines changed

src/atrules/atrules.test.js

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -944,4 +944,45 @@ AtRules('analyzes @property', () => {
944944
assert.equal(actual, expected)
945945
})
946946

947+
AtRules('tracks nesting depth', () => {
948+
const fixture = `
949+
a {
950+
color: red;
951+
}
952+
953+
b {
954+
color: green;
955+
956+
&:hover {
957+
color: blue;
958+
}
959+
960+
color: deepskyblue;
961+
962+
@container (width > 400px) {
963+
color: rebeccapurple
964+
}
965+
}
966+
967+
@media print {
968+
@supports (display: grid) {
969+
c {
970+
color: orange;
971+
}
972+
}
973+
}
974+
`
975+
const actual = analyze(fixture).atrules.nesting
976+
const expected = {
977+
min: 0,
978+
max: 1,
979+
mean: 0.6666666666666666,
980+
mode: 1,
981+
range: 1,
982+
sum: 2,
983+
items: [1, 0, 1]
984+
}
985+
assert.equal(actual, expected)
986+
})
987+
947988
AtRules.run()

src/declarations/declarations.test.js

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -146,4 +146,45 @@ Declarations('should count complexity', () => {
146146
assert.equal(actual, expected)
147147
})
148148

149+
Declarations('tracks nesting depth', () => {
150+
const fixture = `
151+
a {
152+
color: red;
153+
}
154+
155+
b {
156+
color: green;
157+
158+
&:hover {
159+
color: blue;
160+
}
161+
162+
color: deepskyblue;
163+
164+
@container (width > 400px) {
165+
color: rebeccapurple
166+
}
167+
}
168+
169+
@media print {
170+
@supports (display: grid) {
171+
c {
172+
color: orange;
173+
}
174+
}
175+
}
176+
`
177+
const actual = analyze(fixture).declarations.nesting
178+
const expected = {
179+
min: 0,
180+
max: 2,
181+
mean: 0.6666666666666666,
182+
mode: 0,
183+
range: 2,
184+
sum: 4,
185+
items: [0, 0, 1, 0, 1, 2]
186+
}
187+
assert.equal(actual, expected)
188+
})
189+
149190
Declarations.run()

0 commit comments

Comments
 (0)