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()) }) })