Expose who has liked the parts #192 #199

Merged
yencolon merged 5 commits from main into main 2021-01-24 03:14:50 +01:00
4 changed files with 74 additions and 0 deletions
Showing only changes of commit 26235158fa - Show all commits

View File

@@ -0,0 +1,22 @@
export const QUERY = gql`
query PartReactionsQuery {
partReactions {
id
emote
user {
id
name
}
}
}
`
export const Loading = () => <div>Loading...</div>
export const Empty = () => <div>Empty</div>
export const Failure = ({ error }) => <div>Error: {error.message}</div>
export const Success = ({ partReactions }) => {
Irev-Dev commented 2021-01-20 20:22:32 +01:00 (Migrated from github.com)
Review

Let's make the empty state look a little nicer, even just

<div className="text-center py-8 font-roboto text-gray-700">
  No reactions to this part yet 😕
</div>

Should be good

Let's make the empty state look a little nicer, even just ``` <div className="text-center py-8 font-roboto text-gray-700"> No reactions to this part yet 😕 </div> ``` Should be good
return JSON.stringify(partReactions)
}

View File

@@ -0,0 +1,6 @@
// Define your own mock data here:
export const standard = (/* vars, { ctx, req } */) => ({
partReactions: {
id: 42,
},
})

View File

@@ -0,0 +1,20 @@
import { Loading, Empty, Failure, Success } from './PartReactionsCell'
import { standard } from './PartReactionsCell.mock'
export const loading = () => {
return Loading ? <Loading /> : null
}
export const empty = () => {
return Empty ? <Empty /> : null
}
export const failure = () => {
return Failure ? <Failure error={new Error('Oh no')} /> : null
}
export const success = () => {
return Success ? <Success {...standard()} /> : null
}
export default { title: 'Cells/PartReactionsCell' }

View File

@@ -0,0 +1,26 @@
import { render, screen } from '@redwoodjs/testing'
import { Loading, Empty, Failure, Success } from './PartReactionsCell'
import { standard } from './PartReactionsCell.mock'
describe('PartReactionsCell', () => {
test('Loading renders successfully', () => {
render(<Loading />)
// Use screen.debug() to see output
expect(screen.getByText('Loading...')).toBeInTheDocument()
})
test('Empty renders successfully', async () => {
render(<Empty />)
expect(screen.getByText('Empty')).toBeInTheDocument()
})
test('Failure renders successfully', async () => {
render(<Failure error={new Error('Oh no')} />)
expect(screen.getByText(/Oh no/i)).toBeInTheDocument()
})
test('Success renders successfully', async () => {
render(<Success partReactions={standard().partReactions} />)
expect(screen.getByText(/42/i)).toBeInTheDocument()
})
})