Test adding a new set
This commit is contained in:
parent
f221ebb8df
commit
3c9b93f0bc
|
@ -17,6 +17,7 @@ export default function AppFab(props: Partial<ComponentProps<typeof FAB>>) {
|
|||
return (
|
||||
<FAB
|
||||
icon="add"
|
||||
testID="add"
|
||||
color={fabColor}
|
||||
style={{
|
||||
position: 'absolute',
|
||||
|
|
|
@ -1,15 +1,20 @@
|
|||
import {createStackNavigator} from '@react-navigation/stack'
|
||||
import React from 'react'
|
||||
import 'react-native'
|
||||
import {render, waitFor} from 'react-native-testing-library'
|
||||
import {fireEvent, render, waitFor} from 'react-native-testing-library'
|
||||
import EditSet from '../EditSet'
|
||||
import GymSet from '../gym-set'
|
||||
import {HomePageParams} from '../home-page-params'
|
||||
import {MockProviders} from '../mock-providers'
|
||||
import SetList from '../SetList'
|
||||
import Settings from '../settings'
|
||||
|
||||
jest.mock('../db.ts', () => ({
|
||||
setRepo: {findOne: () => Promise.resolve({})},
|
||||
getNow: () => Promise.resolve([{now: new Date().toISOString()}]),
|
||||
setRepo: {
|
||||
findOne: () => Promise.resolve({}),
|
||||
save: jest.fn(() => Promise.resolve({})),
|
||||
},
|
||||
settingsRepo: {
|
||||
findOne: () =>
|
||||
Promise.resolve({
|
||||
|
@ -47,3 +52,36 @@ it('renders correctly', async () => {
|
|||
expect(getAllByText('Created').length).toBeGreaterThan(0)
|
||||
expect(getAllByText('Image').length).toBeGreaterThan(0)
|
||||
})
|
||||
|
||||
it('saves', async () => {
|
||||
const Stack = createStackNavigator<HomePageParams>()
|
||||
const {getByText, getAllByText, getByTestId} = render(
|
||||
<MockProviders>
|
||||
<Stack.Navigator>
|
||||
<Stack.Screen name="Sets" component={SetList} />
|
||||
<Stack.Screen
|
||||
initialParams={{
|
||||
set: {
|
||||
created: '2023-01-01T01:45:13.238Z',
|
||||
id: 1,
|
||||
} as GymSet,
|
||||
}}
|
||||
name="EditSet"
|
||||
component={EditSet}
|
||||
/>
|
||||
</Stack.Navigator>
|
||||
</MockProviders>,
|
||||
)
|
||||
const add = await waitFor(() => getByTestId('add'))
|
||||
fireEvent.press(add)
|
||||
const names = await waitFor(() => getAllByText('Name'))
|
||||
fireEvent.changeText(names[0], 'Bench Press')
|
||||
const reps = await waitFor(() => getAllByText('Reps'))
|
||||
fireEvent.changeText(reps[0], '10')
|
||||
const weights = await waitFor(() => getAllByText('Weight'))
|
||||
fireEvent.changeText(weights[0], '60')
|
||||
const save = getByText('Save')
|
||||
fireEvent.press(save)
|
||||
const home = await waitFor(() => getByText('Home'))
|
||||
expect(home).toBeDefined()
|
||||
})
|
||||
|
|
Loading…
Reference in New Issue
Block a user