diff --git a/tests/repros/__snapshots__/repro120-footprint-layer-change-pcb.snap.svg b/tests/repros/__snapshots__/repro120-footprint-layer-change-pcb.snap.svg
new file mode 100644
index 000000000..42229f3cc
--- /dev/null
+++ b/tests/repros/__snapshots__/repro120-footprint-layer-change-pcb.snap.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/tests/repros/repro120-footprint-layer-change.test.tsx b/tests/repros/repro120-footprint-layer-change.test.tsx
new file mode 100644
index 000000000..284b44011
--- /dev/null
+++ b/tests/repros/repro120-footprint-layer-change.test.tsx
@@ -0,0 +1,54 @@
+import { expect, test } from "bun:test"
+import { getTestFixture } from "tests/fixtures/get-test-fixture"
+import { Fragment } from "react"
+
+const xiaoBottomFootprint = (
+
+ {Array.from({ length: 7 }, (_, i) => (
+
+
+
+ ))}
+ {Array.from({ length: 7 }, (_, i) => (
+
+
+
+ ))}
+
+)
+
+test("repro-120: footprint layer should be bottom when component layer is bottom", async () => {
+ const { circuit } = getTestFixture()
+
+ circuit.add(
+
+
+ ,
+ )
+
+ await circuit.renderUntilSettled()
+
+ expect(circuit).toMatchPcbSnapshot(import.meta.path)
+})