Test saving a plan

This commit is contained in:
Brandon Presley 2023-01-01 18:13:45 +13:00
parent 80f2dfdff5
commit 08f91bf531
1 changed files with 36 additions and 2 deletions

View File

@ -1,7 +1,7 @@
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 GymSet from '../gym-set'
import {MockProviders} from '../mock-providers'
import {Plan} from '../plan'
@ -9,8 +9,16 @@ import {PlanPageParams} from '../plan-page-params'
import Settings from '../settings'
import StartPlan from '../StartPlan'
jest.mock('../best.service.ts', () => ({
getBestSet: () => Promise.resolve({}),
}))
jest.mock('../db.ts', () => ({
setRepo: {findOne: () => Promise.resolve({})},
getNow: () => Promise.resolve([{now: new Date().toISOString()}]),
setRepo: {
findOne: () => Promise.resolve({}),
save: () => Promise.resolve(),
},
settingsRepo: {
findOne: () =>
Promise.resolve({
@ -64,3 +72,29 @@ it('renders correctly', async () => {
expect(getAllByText('Curls').length).toBeGreaterThan(0)
expect(getAllByText('Save').length).toBeGreaterThan(0)
})
it('saves', async () => {
const Stack = createStackNavigator<PlanPageParams>()
const {getByText} = render(
<MockProviders>
<Stack.Navigator>
<Stack.Screen
initialParams={{
first: {reps: 0, weight: 0} as GymSet,
plan: {
workouts: 'Bench,Rows,Curls',
days: 'Monday,Tuesday,Thursday',
} as Plan,
}}
name="StartPlan"
component={StartPlan}
/>
</Stack.Navigator>
</MockProviders>,
)
const save = await waitFor(() => getByText('Save'))
expect(save).toBeDefined()
fireEvent.press(save)
const save2 = await waitFor(() => getByText('Save'))
expect(save2).toBeDefined()
})