diff --git a/.github/workflows/test-smoke.yml b/.github/workflows/test-smoke.yml
deleted file mode 100644
index 2546e485..00000000
--- a/.github/workflows/test-smoke.yml
+++ /dev/null
@@ -1,45 +0,0 @@
-name: Smoke Test
-
-on:
- workflow_dispatch:
- pull_request:
- types:
- - edited
- - opened
- - synchronize
- push:
- branches:
- - '*'
- - '!main'
-
-jobs:
- validate:
- runs-on: ubuntu-latest
- name: Smoke Test
-
- steps:
- - name: Checkout Commit
- uses: actions/checkout@v4
- with:
- fetch-depth: 10
-
- - name: Checkout Main
- run: |
- git fetch origin
- git branch -f main origin/main
-
- - name: Setup
- uses: ./.github/actions/setup
-
- - name: Build Projects
- run: |
- moon jsx-email:build
- moon create-mail:build
- moon run :build --query "project~plugin-*"
-
- - name: Smoke Test
- # Note: We're running `pnpm i` again so that pnpm places the `email` bin in root node_modules
- # We'll need that for the preview tests below
- run: |
- pnpm i
- moon test-smoke:run.ci
diff --git a/docs/components/graph.md b/docs/components/graph.md
index 0c2eea36..c88a928b 100644
--- a/docs/components/graph.md
+++ b/docs/components/graph.md
@@ -18,7 +18,7 @@ This component is wrapper around [QuickChart API](https://quickchart.io/) for ge
Add the graph component to your email template.
```jsx
-import { Html, Body, Section, Graph } from 'jsx-email';
+import { Body, Graph, Html, Section } from 'jsx-email';
const Email = () => {
return (
diff --git a/docs/core/compile.md b/docs/core/compile.md
index c2c38bbd..65298c21 100644
--- a/docs/core/compile.md
+++ b/docs/core/compile.md
@@ -28,10 +28,10 @@ const compiledFiles = await compile({ files: [templatePath], hashFiles: false, o
Once compiled into a bundle, the file can be imported and passed to render such like:
```jsx
-import { Template } from './.compiled/batman.js';
-
import { render } from 'jsx-email';
+import { Template } from './.compiled/batman.js';
+
const html = render();
```
diff --git a/docs/core/plugins.md b/docs/core/plugins.md
index 343fb725..959f5d7e 100644
--- a/docs/core/plugins.md
+++ b/docs/core/plugins.md
@@ -33,6 +33,7 @@ To instruct a render to use plugins, utilize a [Configuration File](/docs/core/c
```js
import { defineConfig } from 'jsx-email/config';
+
import { somePlugin } from './plugins/some-plugin';
export const config = defineConfig({
diff --git a/packages/create-mail/generators/package.json.mustache b/packages/create-mail/generators/package.json.mustache
index 543fe6e3..9c95408a 100644
--- a/packages/create-mail/generators/package.json.mustache
+++ b/packages/create-mail/generators/package.json.mustache
@@ -12,6 +12,7 @@
"jsx-email": "^2.0.0"
},
"devDependencies": {
- "react": "^19.1.0"{{{ typeDep }}}
+ "react": "^19.1.0",
+ "react-dom": "^19.1.0"{{{ typeDep }}}
}
}
diff --git a/test/cli/create-mail.test.ts b/test/cli/create-mail.test.ts
index 8ece17ca..20dd340b 100644
--- a/test/cli/create-mail.test.ts
+++ b/test/cli/create-mail.test.ts
@@ -21,6 +21,23 @@ describe('create-mail', async () => {
expect(plain).toMatchSnapshot();
+ type PackageJson = {
+ dependencies?: Record;
+ devDependencies?: Record;
+ };
+
+ const packageJson = JSON.parse(
+ await readFile(join(__dirname, '.test/new/package.json'), 'utf8')
+ ) as PackageJson;
+
+ expect(packageJson.devDependencies).toMatchObject({
+ react: expect.any(String),
+ 'react-dom': expect.any(String)
+ });
+
+ expect(packageJson.dependencies ?? {}).not.toHaveProperty('react');
+ expect(packageJson.dependencies ?? {}).not.toHaveProperty('react-dom');
+
const contents = await readFile(join(__dirname, '.test/new/templates/email.tsx'), 'utf8');
expect(contents).toMatchSnapshot();