2023-08-14 01:14:34 +00:00
|
|
|
import { createStackNavigator } from "@react-navigation/stack";
|
|
|
|
import React from "react";
|
|
|
|
import "react-native";
|
|
|
|
import { render, waitFor } from "@testing-library/react-native";
|
|
|
|
import EditWorkout from "../EditWorkout";
|
|
|
|
import GymSet from "../gym-set";
|
|
|
|
import { MockProviders } from "../mock-providers";
|
|
|
|
import Settings from "../settings";
|
|
|
|
import { WorkoutsPageParams } from "../WorkoutsPage";
|
2023-01-01 02:21:56 +00:00
|
|
|
|
2023-08-14 01:14:34 +00:00
|
|
|
jest.mock("../db.ts", () => ({
|
2023-01-01 02:21:56 +00:00
|
|
|
settingsRepo: {
|
|
|
|
findOne: () =>
|
|
|
|
Promise.resolve({
|
|
|
|
showSets: true,
|
|
|
|
alarm: true,
|
|
|
|
} as Settings),
|
|
|
|
},
|
2023-08-14 01:14:34 +00:00
|
|
|
}));
|
2023-01-01 02:21:56 +00:00
|
|
|
|
2023-08-14 01:14:34 +00:00
|
|
|
test("renders correctly", async () => {
|
|
|
|
const Stack = createStackNavigator<WorkoutsPageParams>();
|
2023-06-27 03:16:59 +00:00
|
|
|
const { getByText, getAllByText } = render(
|
2023-01-01 02:21:56 +00:00
|
|
|
<MockProviders>
|
|
|
|
<Stack.Navigator>
|
|
|
|
<Stack.Screen
|
|
|
|
initialParams={{
|
2023-08-14 01:14:34 +00:00
|
|
|
gymSet: { name: "Bench press" } as GymSet,
|
2023-01-01 02:21:56 +00:00
|
|
|
}}
|
2023-08-14 01:14:34 +00:00
|
|
|
name="EditWorkout"
|
2023-01-01 02:21:56 +00:00
|
|
|
component={EditWorkout}
|
|
|
|
/>
|
|
|
|
</Stack.Navigator>
|
2023-08-14 01:14:34 +00:00
|
|
|
</MockProviders>
|
|
|
|
);
|
|
|
|
const title = await waitFor(() => getByText(/Edit workout/i));
|
|
|
|
expect(title).toBeDefined();
|
|
|
|
expect(getAllByText(/Name/i).length).toBeGreaterThan(0);
|
|
|
|
expect(getAllByText(/Sets/i).length).toBeGreaterThan(0);
|
|
|
|
expect(getAllByText(/Minutes/i).length).toBeGreaterThan(0);
|
|
|
|
expect(getAllByText(/Seconds/i).length).toBeGreaterThan(0);
|
|
|
|
expect(getAllByText(/Save/i).length).toBeGreaterThan(0);
|
|
|
|
});
|