diff --git a/jestSetup.ts b/jestSetup.ts index aeb92a2..bb9e7cf 100644 --- a/jestSetup.ts +++ b/jestSetup.ts @@ -1,13 +1,19 @@ import 'react-native-gesture-handler/jestSetup' -import {NativeModules as RNNativeModules} from 'react-native' +import {NativeModules} from 'react-native' -RNNativeModules.RNViewShot = RNNativeModules.RNViewShot || { +NativeModules.RNViewShot = NativeModules.RNViewShot || { captureScreen: jest.fn(), } +NativeModules.SettingsModule = NativeModules.SettingsModule || { + ignoringBattery: jest.fn(), + is24: jest.fn(() => Promise.resolve(true)), +} jest.mock('react-native-file-access', () => jest.fn()) jest.mock('react-native-share', () => jest.fn()) jest.mock('react-native/Libraries/Animated/NativeAnimatedHelper') +jest.mock('react-native/Libraries/EventEmitter/NativeEventEmitter') + //jest.mock('react-native-reanimated', () => { // const Reanimated = require('react-native-reanimated/mock') // Reanimated.default.call = () => {} diff --git a/tests/BestPage.test.tsx b/tests/BestPage.test.tsx new file mode 100644 index 0000000..aad097b --- /dev/null +++ b/tests/BestPage.test.tsx @@ -0,0 +1,27 @@ +import React from 'react' +import 'react-native' +import {render, waitFor} from 'react-native-testing-library' +import {Repository} from 'typeorm' +import BestPage from '../BestPage' +import GymSet from '../gym-set' +import {MockProviders} from '../mock-providers' +import Settings from '../settings' + +jest.mock('../db.ts', () => ({ + setRepo: {find: () => Promise.resolve([])} as Repository, + settingsRepo: { + findOne: () => Promise.resolve({} as Settings), + }, +})) + +describe('PlanPage', () => { + it('renders correctly', async () => { + const {getByText} = render( + + + , + ) + const title = await waitFor(() => getByText('Best')) + expect(title).toBeDefined() + }) +}) diff --git a/tests/PlanPage.test.tsx b/tests/PlanPage.test.tsx new file mode 100644 index 0000000..bd44cf9 --- /dev/null +++ b/tests/PlanPage.test.tsx @@ -0,0 +1,27 @@ +import React from 'react' +import 'react-native' +import {render, waitFor} from 'react-native-testing-library' +import {Repository} from 'typeorm' +import GymSet from '../gym-set' +import {MockProviders} from '../mock-providers' +import PlanPage from '../PlanPage' +import Settings from '../settings' + +jest.mock('../db.ts', () => ({ + setRepo: {find: () => Promise.resolve([])} as Repository, + settingsRepo: { + findOne: () => Promise.resolve({} as Settings), + }, +})) + +describe('PlanPage', () => { + it('renders correctly', async () => { + const {getByText} = render( + + + , + ) + const title = await waitFor(() => getByText('Plans')) + expect(title).toBeDefined() + }) +}) diff --git a/tests/SettingsPage.test.tsx b/tests/SettingsPage.test.tsx new file mode 100644 index 0000000..410774b --- /dev/null +++ b/tests/SettingsPage.test.tsx @@ -0,0 +1,32 @@ +import React from 'react' +import 'react-native' +import {render, waitFor} from 'react-native-testing-library' +import {Repository} from 'typeorm' +import GymSet from '../gym-set' +import {MockProviders} from '../mock-providers' +import Settings from '../settings' +import SettingsPage from '../SettingsPage' + +jest.mock('../db.ts', () => ({ + setRepo: {find: () => Promise.resolve([])} as Repository, + settingsRepo: { + findOne: () => Promise.resolve({} as Settings), + }, +})) + +describe('PlanPage', () => { + it('renders correctly', async () => { + const {getByText, getAllByText} = render( + + + , + ) + const title = await waitFor(() => getByText('Settings')) + expect(title).toBeDefined() + expect(getByText(/timers/i)).toBeDefined() + expect(getByText(/vibrate/i)).toBeDefined() + expect(getByText(/notifications/i)).toBeDefined() + expect(getByText(/images/i)).toBeDefined() + expect(getAllByText(/theme/i).length).toBeGreaterThan(0) + }) +}) diff --git a/tests/TimerPage.test.tsx b/tests/TimerPage.test.tsx new file mode 100644 index 0000000..8de4470 --- /dev/null +++ b/tests/TimerPage.test.tsx @@ -0,0 +1,27 @@ +import React from 'react' +import 'react-native' +import {render, waitFor} from 'react-native-testing-library' +import {Repository} from 'typeorm' +import GymSet from '../gym-set' +import {MockProviders} from '../mock-providers' +import Settings from '../settings' +import TimerPage from '../TimerPage' + +jest.mock('../db.ts', () => ({ + setRepo: {find: () => Promise.resolve([])} as Repository, + settingsRepo: { + findOne: () => Promise.resolve({} as Settings), + }, +})) + +describe('PlanPage', () => { + it('renders correctly', async () => { + const {getByText} = render( + + + , + ) + const title = await waitFor(() => getByText('Timer')) + expect(title).toBeDefined() + }) +}) diff --git a/tests/WorkoutsPage.test.tsx b/tests/WorkoutsPage.test.tsx new file mode 100644 index 0000000..f84c391 --- /dev/null +++ b/tests/WorkoutsPage.test.tsx @@ -0,0 +1,27 @@ +import React from 'react' +import 'react-native' +import {render, waitFor} from 'react-native-testing-library' +import {Repository} from 'typeorm' +import GymSet from '../gym-set' +import {MockProviders} from '../mock-providers' +import Settings from '../settings' +import WorkoutsPage from '../WorkoutsPage' + +jest.mock('../db.ts', () => ({ + setRepo: {find: () => Promise.resolve([])} as Repository, + settingsRepo: { + findOne: () => Promise.resolve({} as Settings), + }, +})) + +describe('PlanPage', () => { + it('renders correctly', async () => { + const {getByText} = render( + + + , + ) + const title = await waitFor(() => getByText('Workouts')) + expect(title).toBeDefined() + }) +})