diff --git a/web/src/layouts/BlogLayout/BlogLayout.stories.js b/web/src/layouts/BlogLayout/BlogLayout.stories.js
index 4e249ec..5c59772 100644
--- a/web/src/layouts/BlogLayout/BlogLayout.stories.js
+++ b/web/src/layouts/BlogLayout/BlogLayout.stories.js
@@ -1,6 +1,12 @@
import BlogLayout from './BlogLayout'
-export const generated = () => {
+export const loggedIn = () => {
+ mockCurrentUser({ email: 'rob@redwoodjs.com' })
+
+ return
+}
+
+export const loggedOut = () => {
return
}
diff --git a/web/src/layouts/BlogLayout/BlogLayout.test.js b/web/src/layouts/BlogLayout/BlogLayout.test.js
index b87e730..5427d35 100644
--- a/web/src/layouts/BlogLayout/BlogLayout.test.js
+++ b/web/src/layouts/BlogLayout/BlogLayout.test.js
@@ -1,11 +1,34 @@
-import { render } from '@redwoodjs/testing'
+import { render, screen, waitFor } from '@redwoodjs/testing'
import BlogLayout from './BlogLayout'
+const EMAIL = 'rob@redwoodjs.com'
+const loggedIn = () => {
+ mockCurrentUser({ email: EMAIL })
+}
+const loggedOut = () => {
+ mockCurrentUser(null)
+}
+
describe('BlogLayout', () => {
- it('renders successfully', () => {
- expect(() => {
- render()
- }).not.toThrow()
+ it('displays a Log In link when not logged in', async () => {
+ loggedOut()
+ render()
+
+ await waitFor(() => expect(screen.getByText('Log In')).toBeInTheDocument())
+ })
+
+ it('displays a Log Out link when logged in', async () => {
+ loggedIn()
+ render()
+
+ await waitFor(() => expect(screen.getByText('Log Out')).toBeInTheDocument())
+ })
+
+ it("displays a logged in user's email address", async () => {
+ loggedIn()
+ render()
+
+ await waitFor(() => expect(screen.getByText(EMAIL)).toBeInTheDocument())
})
})