work on navigation component workflow.

This commit is contained in:
Jordan Hewitt
2025-02-22 18:28:10 -08:00
parent 6673663883
commit eb7599bfe8
8 changed files with 116 additions and 32 deletions

View File

@ -1,17 +1,11 @@
import {dirname, resolve} from 'path'
import React from 'react';
import { fireEvent, render, screen } from '@testing-library/react-native';
import { NavigationContainer } from '@react-navigation/native';
import { act, fireEvent, render, screen } from '@testing-library/react-native';
import { createStackNavigator } from '@react-navigation/stack';
import TTNavStack from '../TTNavStack';
// Mock the expo-file-system/next module
jest.mock('expo-file-system/next', () => ({
File: jest.fn(),
Paths: {
join: jest.fn(),
},
}));
jest.mock("@/app/i18n/api", () => require("../../__mocks__/api.ts"));
import TTNavStack from '../TTNavStack';
const Stack = createStackNavigator();
@ -23,15 +17,19 @@ describe('Navigation', () => {
it('Navigates to ConversationThread on language selection', async () => {
render(<TTNavStack />);
const languageSelectionText = await screen.findByText("Language Selection");
fireEvent.press(languageSelectionText);
const languageSelectionText = await screen.findByText(/I Speak French\./i);
act(() => {
fireEvent.press(languageSelectionText);
})
expect(await screen.findByText("Conversation Thread")).toBeOnTheScreen();
});
it('Navigates to Settings on settings selection', async () => {
render(<TTNavStack />);
const settingsButton = await screen.findByText("Settings");
fireEvent.press(settingsButton);
act(() => {
fireEvent.press(settingsButton)
})
expect(await screen.findByText("Settings")).toBeOnTheScreen();
});
});