diff --git a/packages/next/taskfile-swc.js b/packages/next/taskfile-swc.js
index 71f79fc86477..99772bd5a3fb 100644
--- a/packages/next/taskfile-swc.js
+++ b/packages/next/taskfile-swc.js
@@ -120,6 +120,7 @@ module.exports = function (task) {
if (typeof exports.default === 'function' || (typeof exports.default === 'object' && exports.default !== null)) {
Object.assign(exports.default, exports);
module.exports = exports.default;
+ Object.defineProperty(module.exports, '__esModule', { value: true });
}
`
}
diff --git a/test/unit/esm-interpolate/esm-interpolate.test.tsx b/test/unit/esm-interpolate/esm-interpolate.test.tsx
new file mode 100644
index 000000000000..c6ffb8137582
--- /dev/null
+++ b/test/unit/esm-interpolate/esm-interpolate.test.tsx
@@ -0,0 +1,14 @@
+import React from 'react'
+import { renderToString } from 'react-dom/server'
+import * as nextRouter from 'next/router'
+
+import { Foo } from './fixture'
+
+// @ts-expect-error
+jest.spyOn(nextRouter, 'useRouter').mockReturnValue({
+ pathname: 'Hello',
+})
+
+test('mock the interpolated modules should work', () => {
+ expect(renderToString(