diff --git a/tests/repros/__snapshots__/kicad-benchmark-four-sections-schematic.snap.svg b/tests/repros/__snapshots__/kicad-benchmark-four-sections-schematic.snap.svg
new file mode 100644
index 000000000..b687bd6cd
--- /dev/null
+++ b/tests/repros/__snapshots__/kicad-benchmark-four-sections-schematic.snap.svg
@@ -0,0 +1,152 @@
+
\ No newline at end of file
diff --git a/tests/repros/fixtures/kicad-benchmark-four-sections.fixture.tsx b/tests/repros/fixtures/kicad-benchmark-four-sections.fixture.tsx
new file mode 100644
index 000000000..71e52347a
--- /dev/null
+++ b/tests/repros/fixtures/kicad-benchmark-four-sections.fixture.tsx
@@ -0,0 +1,637 @@
+const espPins = {
+ pin1: "RESET",
+ pin2: "ADC",
+ pin3: "EN",
+ pin4: "GPIO16",
+ pin5: "GPIO14",
+ pin6: "GPIO12",
+ pin7: "GPIO13",
+ pin8: "VCC",
+ pin9: "CS0",
+ pin10: "MISO",
+ pin11: "GPIO9",
+ pin12: "GPIO10",
+ pin13: "MOSI",
+ pin14: "SCLK",
+ pin15: "GND",
+ pin16: "GPIO15",
+ pin17: "GPIO2",
+ pin18: "GPIO0",
+ pin19: "GPIO4",
+ pin20: "GPIO5",
+ pin21: "RXD",
+ pin22: "TXD",
+} as const
+
+const uartPins = {
+ pin1: "RST",
+ pin2: "GPIO0",
+ pin3: "GPIO1",
+ pin4: "GND",
+ pin5: "DPLUS",
+ pin6: "DMINUS",
+ pin7: "REGIN",
+ pin8: "VDD",
+ pin9: "VIO",
+ pin10: "SUSPEND",
+ pin11: "SUSPEND_N",
+ pin12: "WAKEUP",
+ pin13: "RI",
+ pin14: "DCD",
+ pin15: "DTR",
+ pin16: "DSR",
+ pin17: "TXD",
+ pin18: "RXD",
+ pin19: "RTS",
+ pin20: "CTS",
+ pin21: "GPIO2",
+ pin22: "GPIO3",
+ pin23: "CHREN",
+ pin24: "NC",
+ pin25: "EP",
+} as const
+
+const usbPins = {
+ pin1: "GND1",
+ pin2: "VBUS1",
+ pin3: "CC1",
+ pin4: "DP1",
+ pin5: "DM1",
+ pin6: "SBU1",
+ pin7: "SBU2",
+ pin8: "DM2",
+ pin9: "DP2",
+ pin10: "CC2",
+ pin11: "VBUS2",
+ pin12: "GND2",
+ pin13: "SHELL1",
+ pin14: "SHELL2",
+ pin15: "SHELL3",
+ pin16: "SHELL4",
+} as const
+
+const Esp12F = () => (
+
+ {[1, 2, 3, 4, 5, 6, 7, 8].map((p, i) => (
+
+
+
+ ))}
+ {[15, 16, 17, 18, 19, 20, 21, 22].map((p, i) => (
+
+
+
+ ))}
+ {[9, 10, 11, 12, 13, 14].map((p, i) => (
+
+
+
+ ))}
+
+
+ }
+ />
+)
+
+export default () => (
+
+
+
+
+
+
+
+
+
+
+ {[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12].map((p, i) => (
+
+
+
+ ))}
+
+
+
+
+
+
+ }
+ />
+
+
+
+ {[1, 2, 3, 4, 5, 6].map((p, i) => (
+
+
+
+ ))}
+ {[7, 8, 9, 10, 11, 12].map((p, i) => (
+
+
+
+ ))}
+ {[13, 14, 15, 16, 17, 18].map((p, i) => (
+
+
+
+ ))}
+ {[19, 20, 21, 22, 23, 24].map((p, i) => (
+
+
+
+ ))}
+
+
+
+ }
+ />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+)
+import { Fragment } from "react"
diff --git a/tests/repros/kicad-benchmark-four-sections.test.tsx b/tests/repros/kicad-benchmark-four-sections.test.tsx
new file mode 100644
index 000000000..d8618667b
--- /dev/null
+++ b/tests/repros/kicad-benchmark-four-sections.test.tsx
@@ -0,0 +1,23 @@
+import { expect, test } from "bun:test"
+import { getTestFixture } from "tests/fixtures/get-test-fixture"
+import KicadBenchmark from "./fixtures/kicad-benchmark-four-sections.fixture"
+
+test("kicad benchmark renders four schematic sections", async () => {
+ const { circuit } = getTestFixture()
+
+ circuit.add()
+ await circuit.renderUntilSettled()
+
+ const circuitJson = circuit.getCircuitJson()
+ const sectionDividers = circuitJson.filter(
+ (element) => element.type === "schematic_line",
+ )
+ const sectionTitles = circuitJson.filter(
+ (element) =>
+ element.type === "schematic_text" && element.text === "BOOT / STATUS",
+ )
+
+ expect(sectionDividers).toHaveLength(0)
+ expect(sectionTitles).toHaveLength(1)
+ expect(circuit).toMatchSchematicSnapshot(import.meta.path)
+})