diff --git a/packages/react-dom/src/__tests__/ReactDOMUseId-test.js b/packages/react-dom/src/__tests__/ReactDOMUseId-test.js
index 953b96343db26..dd7bbaa8b41fa 100644
--- a/packages/react-dom/src/__tests__/ReactDOMUseId-test.js
+++ b/packages/react-dom/src/__tests__/ReactDOMUseId-test.js
@@ -16,6 +16,7 @@ let ReactDOMFizzServer;
let Stream;
let Suspense;
let useId;
+let useState;
let document;
let writable;
let container;
@@ -35,6 +36,7 @@ describe('useId', () => {
Stream = require('stream');
Suspense = React.Suspense;
useId = React.useId;
+ useState = React.useState;
// Test Environment
const jsdom = new JSDOM(
@@ -342,6 +344,32 @@ describe('useId', () => {
`);
});
+ test('local render phase updates', async () => {
+ function App({swap}) {
+ const [count, setCount] = useState(0);
+ if (count < 3) {
+ setCount(count + 1);
+ }
+ return useId();
+ }
+
+ await serverAct(async () => {
+ const {pipe} = ReactDOMFizzServer.renderToPipeableStream(