diff options
| author | Sam Nystrom <sam@samnystrom.dev> | 2024-03-16 22:54:54 -0400 |
|---|---|---|
| committer | Sam Nystrom <sam@samnystrom.dev> | 2024-03-16 22:54:54 -0400 |
| commit | 1d5f74bca29c6bb28bef6035aa09a1e35884b40a (patch) | |
| tree | 910801e8f2bf940f77438642f7a20448385d822a /src/pages | |
| parent | 7c37715afd7d9572a7f1a79552a187ab2a3e4184 (diff) | |
Diffstat (limited to 'src/pages')
| -rw-r--r-- | src/pages/Editor.tsx | 6 | ||||
| -rw-r--r-- | src/pages/SignUp.test.tsx | 34 | ||||
| -rw-r--r-- | src/pages/SignUp.tsx | 9 |
3 files changed, 43 insertions, 6 deletions
diff --git a/src/pages/Editor.tsx b/src/pages/Editor.tsx index c929595..c5b369f 100644 --- a/src/pages/Editor.tsx +++ b/src/pages/Editor.tsx @@ -20,11 +20,7 @@ const Editor = ({ user, project }: EditorProps) => { })(); }, []); - return ( - <> - {!!projectData.value && <NodeEditor project={projectData.value} />} - </> - ); + return projectData.value ? <NodeEditor project={projectData.value} /> : null; }; export default Editor; diff --git a/src/pages/SignUp.test.tsx b/src/pages/SignUp.test.tsx new file mode 100644 index 0000000..3029beb --- /dev/null +++ b/src/pages/SignUp.test.tsx @@ -0,0 +1,34 @@ +import { expect, test } from 'bun:test'; +import { render, fireEvent } from '@testing-library/preact'; +import { Pb } from '../context.ts'; +import { pb } from '../preload.ts'; +import SignUp from './SignUp.tsx'; + +test('has a link to log in', () => { + const { getAllByText, getByLabelText, getByText } = render( + <SignUp /> + ); + + expect(getAllByText(/log in/i)).not.toHaveLength(0); +}); + +test('can sign up', () => { + const username = 'foo'; + const email = 'foo@example.com'; + const password = '12345678'; + + const { getByText, getByLabelText } = render( + <Pb.Provider value={pb}> + <SignUp /> + </Pb.Provider> + ); + + fireEvent.change(getByLabelText(/username/i), {target: {value: username}}); + fireEvent.change(getByLabelText(/email/i), {target: {value: email}}); + fireEvent.change(getByLabelText(/password/i), {target: {value: password}}); + fireEvent.change(getByLabelText(/confirm password/i), {target: {value: password}}); + + fireEvent.click(getByText(/continue/i)); + + expect(pb.authStore.isValid()).toBeTrue(); +}); diff --git a/src/pages/SignUp.tsx b/src/pages/SignUp.tsx index e1cee3c..755c180 100644 --- a/src/pages/SignUp.tsx +++ b/src/pages/SignUp.tsx @@ -2,7 +2,14 @@ import { useContext, useCallback } from 'preact/hooks'; import { useSignal } from '@preact/signals'; import { route } from 'preact-router'; import { Pb } from '../context.ts'; -import { Header, Content, Form, FormLabel, TextInput, Button, ArrowButton } from '../components'; + +import Header from '../components/Header.tsx'; +import Content from '../components/Content.tsx'; +import Form from '../components/Form.tsx'; +import FormLabel from '../components/FormLabel.tsx'; +import TextInput from '../components/TextInput.tsx'; +import Button from '../components/Button.tsx'; +import ArrowButton from '../components/ArrowButton.tsx'; const SignUp = () => { const pb = useContext(Pb)!; |
