Brandon Presley
514efc6467
This unfortunately has broken the unit tests. Will have to worry about fixing them later. Everything seems to be working other than that.
54 lines
1.6 KiB
TypeScript
54 lines
1.6 KiB
TypeScript
import { createStackNavigator } from '@react-navigation/stack'
|
|
import React from 'react'
|
|
import 'react-native'
|
|
import { render, waitFor } from '@testing-library/react-native'
|
|
import EditPlan from '../EditPlan'
|
|
import { MockProviders } from '../mock-providers'
|
|
import { Plan } from '../plan'
|
|
import { PlanPageParams } from '../plan-page-params'
|
|
|
|
jest.mock('../db.ts', () => ({
|
|
setRepo: {
|
|
createQueryBuilder: () => ({
|
|
select: jest.fn().mockReturnThis(),
|
|
distinct: jest.fn().mockReturnThis(),
|
|
orderBy: jest.fn().mockReturnThis(),
|
|
getRawMany: jest.fn(() =>
|
|
Promise.resolve([
|
|
{ name: 'Bench press' },
|
|
{ name: 'Bicep curls' },
|
|
{ name: 'Rows' },
|
|
])
|
|
),
|
|
}),
|
|
},
|
|
}))
|
|
|
|
test('renders correctly', async () => {
|
|
const Stack = createStackNavigator<PlanPageParams>()
|
|
const { getByText, getAllByText } = render(
|
|
<MockProviders>
|
|
<Stack.Navigator>
|
|
<Stack.Screen
|
|
initialParams={{
|
|
plan: {
|
|
workouts: 'Bench,Rows,Curls',
|
|
days: 'Monday,Tuesday,Thursday',
|
|
id: 1,
|
|
} as Plan,
|
|
}}
|
|
name='EditPlan'
|
|
component={EditPlan}
|
|
/>
|
|
</Stack.Navigator>
|
|
</MockProviders>,
|
|
)
|
|
const title = await waitFor(() => getByText(/Edit plan/i))
|
|
expect(title).toBeDefined()
|
|
expect(getAllByText('Days').length).toBeGreaterThan(0)
|
|
expect(getAllByText('Monday').length).toBeGreaterThan(0)
|
|
expect(getAllByText('Workouts').length).toBeGreaterThan(0)
|
|
expect(getAllByText('Bench press').length).toBeGreaterThan(0)
|
|
expect(getAllByText('Save').length).toBeGreaterThan(0)
|
|
})
|