Enforces padding around test blocks.
✅ This rule is included in the vitest preset.
Blank lines around test() and it() blocks make individual cases read like separate units.
That spacing is especially helpful in suites with many neighboring cases, focused tests, or skipped tests.
AEimpo53 { it, test <} sp ansty="le--0:#C792EA;--1:#8844">AEfr} sp>5<3 sp ansty="le--0:#D9F5DD;--1:#1111">13 sp><1"sp ansty="le--0:#ECC48D;--1:#984E">4Dvite1"sp>1<1"sp ansty="le--0:#D6DEEB;--1:#403F">51"sp><3;d ivclassNa="meec-li">d3;d>AEconsB0firAE <= sp ansty="le--0:#D9F5DD;--1:#1111">1= sp><1"sp ansty="le--0:#ECC48D;--1:#984E">4Db1"sp>1<1"sp ansty="le--0:#D6DEEB;--1:#403F">51"sp><3;d ivclassNa="meec-li">AEconsB0secoAE <= sp ansty="le--0:#D9F5DD;--1:#1111">1= sp><1"sp ansty="le--0:#ECC48D;--1:#984E">4Db1"sp>1<1"sp ansty="le--0:#D6DEEB;--1:#403F">51"sp>3;d><3;d ivclassNa="meec-li">B053(first<, sp ansty="le--0:#D9F5DD;--1:#1111">11, sp><()sp ansty="le--0:#D6DEEB;--1:#403F">5()sp><3 sp ansty="le--0:#C792EA;--1:#8844">AE3 sp><=>sp ansty="le--0:#D6DEEB;--1:#403F">53=>sp>3;d>< {d ivclassNa="meec-li">nt< sp ansty="le--0:#919F9F;--1:#5D63">76// . sp> {d><..d ivclassNa="meec-li">53}<);d ivclassNa="meec-li">53AB0on53(second<, sp ansty="le--0:#D9F5DD;--1:#1111">11, sp><()sp ansty="le--0:#D6DEEB;--1:#403F">5()sp><3 sp ansty="le--0:#C792EA;--1:#8844">AE3 sp><=>sp ansty="le--0:#D6DEEB;--1:#403F">53=>sp>);d>< {d ivclassNa="meec-li">nt< sp ansty="le--0:#919F9F;--1:#5D63">76// . sp> {d><..d ivclassNa="meec-li">53}<);d ivclassNa="meec-li">B0te5<3(sp ansty="le--0:#D9F5DD;--1:#1111">13(sp><1"sp ansty="le--0:#ECC48D;--1:#984E">4Dthi1"sp>1<1"sp ansty="le--0:#D6DEEB;--1:#403F">531"sp><, sp ansty="le--0:#D9F5DD;--1:#1111">11, sp><()sp ansty="le--0:#D6DEEB;--1:#403F">5()sp><3 sp ansty="le--0:#C792EA;--1:#8844">AE3 sp><=>sp ansty="le--0:#D6DEEB;--1:#403F">53=>sp>);d>< {d ivclassNa="meec-li">nt< sp ansty="le--0:#919F9F;--1:#5D63">76// . sp> {d><..d ivclassNa="meec-li">53}<);d ivclassNa="meec-li">B0te5<3(sp ansty="le--0:#D9F5DD;--1:#1111">13(sp><1"sp ansty="le--0:#ECC48D;--1:#984E">4Dfour1"sp>1<1"sp ansty="le--0:#D6DEEB;--1:#403F">531"sp><, sp ansty="le--0:#D9F5DD;--1:#1111">11, sp><()sp ansty="le--0:#D6DEEB;--1:#403F">5()sp><3 sp ansty="le--0:#C792EA;--1:#8844">AE3 sp><=>sp ansty="le--0:#D6DEEB;--1:#403F">53=>sp>);d>< {d ivclassNa="meec-li">nt< sp ansty="le--0:#919F9F;--1:#5D63">76// . sp> {d><..d ivclassNa="meec-li">53}<);d ivclassNa="meco"> { // ...});it.only(second, () => { // ...});test("third", () => { // ...});test("fourth", () => { // ...}"><);d>);d>);d>AEimpo53 { describe, expect, it, test <} sp ansty="le--0:#C792EA;--1:#8844">AEfr} sp>5<3 sp ansty="le--0:#D9F5DD;--1:#1111">13 sp><1"sp ansty="le--0:#ECC48D;--1:#984E">4Dvite1"sp>1<1"sp ansty="le--0:#D6DEEB;--1:#403F">51"sp><3;d ivclassNa="meec-li">d3;d>B0descri5<3(sp ansty="le--0:#D9F5DD;--1:#1111">13(sp><1"sp ansty="le--0:#ECC48D;--1:#984E">4Dnest1"sp>1<1"sp ansty="le--0:#D6DEEB;--1:#403F">531"sp><, sp ansty="le--0:#D9F5DD;--1:#1111">11, sp><()sp ansty="le--0:#D6DEEB;--1:#403F">5()sp><3 sp ansty="le--0:#C792EA;--1:#8844">AE3 sp><=>sp ansty="le--0:#D6DEEB;--1:#403F">53=>sp>< {d ivclassNa="meec-li">nt< sp ansty="le--0:#C792EA;--1:#8844">AEcons sp>B0thiAE <= sp ansty="le--0:#F78C6C;--1:#AA09">821= sp><23sp ansty="le--0:#D6DEEB;--1:#403F">523sp> {d><3;d ivclassNa="meec-li">nt< sp ansty="le--0:#82AAFF;--1:#3B61">B0te sp>5<3(sp ansty="le--0:#D9F5DD;--1:#1111">13(sp><1"sp ansty="le--0:#ECC48D;--1:#984E">4Do1"sp>1<1"sp ansty="le--0:#D6DEEB;--1:#403F">531"sp><, sp ansty="le--0:#D9F5DD;--1:#1111">11, sp><()sp ansty="le--0:#D6DEEB;--1:#403F">5()sp><3 sp ansty="le--0:#C792EA;--1:#8844">AE3 sp><=>sp ansty="le--0:#D6DEEB;--1:#403F">53=>sp>3;d>< {d ivclassNa="meec-li">nt < sp ansty="le--0:#82AAFF;--1:#3B61">B0expe sp>53(thinAB0to5<3(sp ansty="le--0:#F78C6C;--1:#AA09">8213(sp><23sp ansty="le--0:#D6DEEB;--1:#403F">5323sp> {d><);d ivclassNa="meec-li">53< sp ansty="le--0:#D6DEEB;--1:#403F">53} sp>);d><);d ivclassNa="meec-li">nt< sp ansty="le--0:#919F9F;--1:#5D63">76// With a comme sp>);d>nt< sp ansty="le--0:#82AAFF;--1:#3B61">B0 sp>5<3(sp ansty="le--0:#D9F5DD;--1:#1111">13(sp><1"sp ansty="le--0:#ECC48D;--1:#984E">4Dt1"sp>1<1"sp ansty="le--0:#D6DEEB;--1:#403F">531"sp><, sp ansty="le--0:#D9F5DD;--1:#1111">11, sp><()sp ansty="le--0:#D6DEEB;--1:#403F">5()sp><3 sp ansty="le--0:#C792EA;--1:#8844">AE3 sp><=>sp ansty="le--0:#D6DEEB;--1:#403F">53=>sp>< {d ivclassNa="meec-li">nt < sp ansty="le--0:#82AAFF;--1:#3B61">B0expe sp>53(thinAB0to5<3(sp ansty="le--0:#F78C6C;--1:#AA09">8213(sp><23sp ansty="le--0:#D6DEEB;--1:#403F">5323sp> {d><);d ivclassNa="meec-li">53< sp ansty="le--0:#D6DEEB;--1:#403F">53} sp>);d><);d ivclassNa="meec-li">53< sp ansty="le--0:#D6DEEB;--1:#403F">53te sp>AB0sk5<3(sp ansty="le--0:#D9F5DD;--1:#1111">13(sp><1"sp ansty="le--0:#ECC48D;--1:#984E">4Dthr1"sp>1<1"sp ansty="le--0:#D6DEEB;--1:#403F">531"sp><, sp ansty="le--0:#D9F5DD;--1:#1111">11, sp><()sp ansty="le--0:#D6DEEB;--1:#403F">5()sp><3 sp ansty="le--0:#C792EA;--1:#8844">AE3 sp><=>sp ansty="le--0:#D6DEEB;--1:#403F">53=>sp>);d>< {d ivclassNa="meec-li">nt < sp ansty="le--0:#919F9F;--1:#5D63">76// . sp> {d><..d ivclassNa="meec-li">53< sp ansty="le--0:#D6DEEB;--1:#403F">53} sp><);d ivclassNa="meec-li">53< sp ansty="le--0:#D6DEEB;--1:#403F">53 sp>AB0sk5<3(sp ansty="le--0:#D9F5DD;--1:#1111">13(sp><1"sp ansty="le--0:#ECC48D;--1:#984E">4Dfo1"sp>1<1"sp ansty="le--0:#D6DEEB;--1:#403F">531"sp><, sp ansty="le--0:#D9F5DD;--1:#1111">11, sp><()sp ansty="le--0:#D6DEEB;--1:#403F">5()sp><3 sp ansty="le--0:#C792EA;--1:#8844">AE3 sp><=>sp ansty="le--0:#D6DEEB;--1:#403F">53=>sp>);d>< {d ivclassNa="meec-li">nt < sp ansty="le--0:#919F9F;--1:#5D63">76// . sp> {d><..d ivclassNa="meec-li">53< sp ansty="le--0:#D6DEEB;--1:#403F">53} sp><);d ivclassNa="meec-li">53});d><);d ivclassNa="meco"> { const thing = 123; test("one", () => { expect(thing).toBe(123); }); // With a comment it("two", () => { expect(thing).toBe(123); }); test.skip("three", () => { // ... }); it.skip("four", () => { // ... });}"><);d>);d>);d> 44AEim3F53 { it, tes44AE31<111" spans="tyle--0:#ECC48D;--1:#98">4E4Dvi111">1<111" spans="tyle--0:#D6DEEB;--1:#40">3111">c44AEco61B0f44A1<111" spans="tyle--0:#ECC48D;--1:#98">4E4111">1<111" spans="tyle--0:#D6DEEB;--1:#40">3111">44AEco61B0se44A1<111" spans="tyle--0:#ECC48D;--1:#98">4E4111">1<111" spans="tyle--0:#D6DEEB;--1:#40">3111">c613F53(fir11<11() spans="tyle--0:#D6DEEB;--1:#40">311()>44 spans="tyle--0:#D6DEEB;--1:#40">3F><53 {divclass="Nameec-">de6376//53 >< .. .divclass="Nameec-">3F5 ..><3}) ;divclass="Nameec-">c3})>3F<53it spans="tyle--0:#C792EA;--1:#88">453it><4AE. spans="tyle--0:#82AAFF;--1:#3B">61B04AE.>3F53(seco11<11() spans="tyle--0:#D6DEEB;--1:#40">311()>44 spans="tyle--0:#D6DEEB;--1:#40">3F><53 {divclass="Nameec-">de6376//53 >< .. .divclass="Nameec-">3F5 ..><3}) ;divclass="Nameec-">c3})>61B031<111" spans="tyle--0:#ECC48D;--1:#98">4E4Dt111">1<111" spans="tyle--0:#D6DEEB;--1:#40">3F111"><53, spans="tyle--0:#D9F5DD;--1:#11">1153, ><11() spans="tyle--0:#D6DEEB;--1:#40">311()>44 spans="tyle--0:#D6DEEB;--1:#40">3F><53 {divclass="Nameec-">de6376//53 >< .. .divclass="Nameec-">3F5 ..><3}) ;divclass="Nameec-">c3})>61B031<111" spans="tyle--0:#ECC48D;--1:#98">4E4Dfo111">1<111" spans="tyle--0:#D6DEEB;--1:#40">3F111"><53, spans="tyle--0:#D9F5DD;--1:#11">1153, ><11() spans="tyle--0:#D6DEEB;--1:#40">311()>44 spans="tyle--0:#D6DEEB;--1:#40">3F><53 {divclass="Nameec-">de6376//53 >< .. .divclass="Nameec-">3F5 ..><3}) ;divclass="Name"> { // ...});it.only(second, () => { // ...});test("third", () => { // ...});test("fourth", () => { // ..."><})>})>3})><;di vdivclass="Nameexpressive-">44AEim3F53 { describe, expect, it, tes44AE31<111" spans="tyle--0:#ECC48D;--1:#98">4E4Dvi111">1<111" spans="tyle--0:#D6DEEB;--1:#40">3111">c61B0desc31<111" spans="tyle--0:#ECC48D;--1:#98">4E4Dne111">1<111" spans="tyle--0:#D6DEEB;--1:#40">3F111"><53, spans="tyle--0:#D9F5DD;--1:#11">1153, ><11() spans="tyle--0:#D6DEEB;--1:#40">311()>44 spans="tyle--0:#D6DEEB;--1:#40">3F><53 {divclass="Nameec-">de44AEco61B0t44A098<2123 spans="tyle--0:#D6DEEB;--1:#40">32123>53 >cde61B031<111" spans="tyle--0:#ECC48D;--1:#98">4E4111">1<111" spans="tyle--0:#D6DEEB;--1:#40">3F111"><53, spans="tyle--0:#D9F5DD;--1:#11">1153, ><11() spans="tyle--0:#D6DEEB;--1:#40">311()>44 spans="tyle--0:#D6DEEB;--1:#40">3F><53 {divclass="Nameec-">dent< spans="tyle--0:#82AAFF;--1:#3B">61B0ex >3F53(th4<4AE. spans="tyle--0:#82AAFF;--1:#3B">61B04AE.>3098<2123 spans="tyle--0:#D6DEEB;--1:#40">3F2123>53 ><53) ;divclass="Nameec-">3F<53 spans="tyle--0:#D6DEEB;--1:#40">3F553 >53)><3}) ;divclass="Nameec-">c3})>de6376// With a comde6131<111" spans="tyle--0:#ECC48D;--1:#98">4E4111">1<111" spans="tyle--0:#D6DEEB;--1:#40">3F111"><53, spans="tyle--0:#D9F5DD;--1:#11">1153, ><11() spans="tyle--0:#D6DEEB;--1:#40">311()>44 spans="tyle--0:#D6DEEB;--1:#40">3F><53 {divclass="Nameec-">dent< spans="tyle--0:#82AAFF;--1:#3B">61B0ex >3F53(th4<4AE. spans="tyle--0:#82AAFF;--1:#3B">61B04AE.>3098<2123 spans="tyle--0:#D6DEEB;--1:#40">3F2123>53 ><53) ;divclass="Nameec-">3F<53 spans="tyle--0:#D6DEEB;--1:#40">3F553 >53)><3}) ;divclass="Nameec-">c3})>3F<53 spans="tyle--0:#D6DEEB;--1:#40">3F5353 >4<4AE. spans="tyle--0:#82AAFF;--1:#3B">61B04AE.>31<111" spans="tyle--0:#ECC48D;--1:#98">4E4Dt111">1<111" spans="tyle--0:#D6DEEB;--1:#40">3F111"><53, spans="tyle--0:#D9F5DD;--1:#11">1153, ><11() spans="tyle--0:#D6DEEB;--1:#40">311()>44 spans="tyle--0:#D6DEEB;--1:#40">3F><53 {divclass="Nameec-">dent< spans="tyle--0:#919F9F;--1:#5D">6376// >53 >< .. .divclass="Nameec-">3F<53 spans="tyle--0:#D6DEEB;--1:#40">3F553 > ..><3}) ;divclass="Nameec-">c3})>3F<53 spans="tyle--0:#D6DEEB;--1:#40">3F53 ><53it spans="tyle--0:#C792EA;--1:#88">453it><4AE. spans="tyle--0:#82AAFF;--1:#3B">61B04AE.>31<111" spans="tyle--0:#ECC48D;--1:#98">4E4D111">1<111" spans="tyle--0:#D6DEEB;--1:#40">3F111"><53, spans="tyle--0:#D9F5DD;--1:#11">1153, ><11() spans="tyle--0:#D6DEEB;--1:#40">311()>44 spans="tyle--0:#D6DEEB;--1:#40">3F><53 {divclass="Nameec-">dent< spans="tyle--0:#919F9F;--1:#5D">6376// >53 >< .. .divclass="Nameec-">3F<53 spans="tyle--0:#D6DEEB;--1:#40">3F553 > ..><3}) ;divclass="Nameec-">3F53})><3}) ;divclass="Name"> { const thing = 123; test("one", () => { expect(thing).toBe(123); }); // With a comment it("two", () => { expect(thing).toBe(123); }); test.skip("three", () => { // ... }); it.skip("four", () => { // ... });"><})>})>3})>;di>
This rule is not configurable.
If your project keeps very small test files and prefers denser case lists, the extra blank lines from this rule may not be worth it.
That can be reasonable when each suite contains only a handful of short tests.