diff --git a/packages/next/src/build/swc/options.ts b/packages/next/src/build/swc/options.ts
index fa91033272..66fc96dc66 100644
--- a/packages/next/src/build/swc/options.ts
+++ b/packages/next/src/build/swc/options.ts
@@ -178,16 +178,16 @@ function getBaseSWCOptions({
development
),
}),
- serverComponents: hasServerComponents
- ? { isServer: !!isServerLayer }
- : undefined,
- serverActions: hasServerComponents
- ? {
- // TODO-APP: When Server Actions is stable, we need to remove this flag.
- enabled: !!isServerActionsEnabled,
- isServer: !!isServerLayer,
- }
- : undefined,
+ serverComponents:
+ hasServerComponents && !jest ? { isServer: !!isServerLayer } : undefined,
+ serverActions:
+ hasServerComponents && !jest
+ ? {
+ // TODO-APP: When Server Actions is stable, we need to remove this flag.
+ enabled: !!isServerActionsEnabled,
+ isServer: !!isServerLayer,
+ }
+ : undefined,
bundleTarget,
}
}
diff --git a/test/production/jest/rsc/app/server-action/action.js b/test/production/jest/rsc/app/server-action/action.js
new file mode 100644
index 0000000000..e2903615f7
--- /dev/null
+++ b/test/production/jest/rsc/app/server-action/action.js
@@ -0,0 +1,5 @@
+'use server'
+
+export async function action(data) {
+ console.log(data)
+}
diff --git a/test/production/jest/rsc/app/server-action/page.jsx b/test/production/jest/rsc/app/server-action/page.jsx
new file mode 100644
index 0000000000..554ef1b172
--- /dev/null
+++ b/test/production/jest/rsc/app/server-action/page.jsx
@@ -0,0 +1,9 @@
+import { action } from './action'
+
+export default function Page() {
+ return (
+
+ )
+}
diff --git a/test/production/jest/rsc/app/server-action/page.test.jsx b/test/production/jest/rsc/app/server-action/page.test.jsx
new file mode 100644
index 0000000000..e077b511e0
--- /dev/null
+++ b/test/production/jest/rsc/app/server-action/page.test.jsx
@@ -0,0 +1,10 @@
+/**
+ * @jest-environment jsdom
+ */
+import { render, screen } from '@testing-library/react'
+import Page from './page'
+
+it('works with client-only code', () => {
+ render()
+ expect(screen.getByTestId('log')).toHaveTextContent('log')
+})