Skip to content

Commit

Permalink
Merge pull request #629 from systemli/Move-contexts-and-add-Tests
Browse files Browse the repository at this point in the history
♻️ Move contexts and add Tests
  • Loading branch information
0x46616c6b authored May 3, 2024
2 parents ed19df1 + ad8d900 commit 4d54bfc
Show file tree
Hide file tree
Showing 51 changed files with 355 additions and 64 deletions.
4 changes: 2 additions & 2 deletions src/App.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,15 @@ import { FC } from 'react'
import { QueryClient, QueryClientProvider } from '@tanstack/react-query'
import { ReactQueryDevtools } from '@tanstack/react-query-devtools'
import { BrowserRouter, Route, Routes } from 'react-router-dom'
import { AuthProvider } from './components/useAuth'
import { AuthProvider } from './contexts/AuthContext'
import HomeView from './views/HomeView'
import LoginView from './views/LoginView'
import SettingsView from './views/SettingsView'
import TickerView from './views/TickerView'
import UsersView from './views/UsersView'
import ProtectedRoute from './components/ProtectedRoute'
import NotFoundView from './views/NotFoundView'
import { FeatureProvider } from './components/useFeature'
import { FeatureProvider } from './contexts/FeatureContext'
import ThemeProvider from './theme/ThemeProvider'
import '../leaflet.config.js'

Expand Down
3 changes: 2 additions & 1 deletion src/components/ProtectedRoute.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import { FC } from 'react'
import { Navigate, RouteProps } from 'react-router'
import useAuth, { Roles } from './useAuth'
import useAuth from '../contexts/useAuth'
import { Roles } from '../contexts/AuthContext'

type Props = RouteProps & {
role: Roles
Expand Down
2 changes: 1 addition & 1 deletion src/components/message/MessageForm.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import { Ticker } from '../../api/Ticker'
import { SubmitHandler, useForm } from 'react-hook-form'
import { useQueryClient } from '@tanstack/react-query'
import MessageFormCounter from './MessageFormCounter'
import useAuth from '../useAuth'
import useAuth from '../../contexts/useAuth'
import { Upload } from '../../api/Upload'
import UploadButton from './UploadButton'
import AttachmentsPreview from './AttachmentsPreview'
Expand Down
2 changes: 1 addition & 1 deletion src/components/message/MessageList.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import { useInfiniteQuery } from '@tanstack/react-query'
import { Ticker } from '../../api/Ticker'
import { useMessageApi } from '../../api/Message'
import Message from './Message'
import useAuth from '../useAuth'
import useAuth from '../../contexts/useAuth'
import ErrorView from '../../views/ErrorView'
import Loader from '../Loader'
import { Button, CircularProgress } from '@mui/material'
Expand Down
2 changes: 1 addition & 1 deletion src/components/message/MessageModalDelete.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { FC, useCallback } from 'react'
import { useQueryClient } from '@tanstack/react-query'
import { Message, useMessageApi } from '../../api/Message'
import useAuth from '../useAuth'
import useAuth from '../../contexts/useAuth'
import Modal from '../common/Modal'

interface Props {
Expand Down
2 changes: 1 addition & 1 deletion src/components/message/UploadButton.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'
import { IconButton } from '@mui/material'
import { Ticker } from '../../api/Ticker'
import { useUploadApi, Upload } from '../../api/Upload'
import useAuth from '../useAuth'
import useAuth from '../../contexts/useAuth'
import { faImages } from '@fortawesome/free-solid-svg-icons'
import palette from '../../theme/palette'

Expand Down
2 changes: 1 addition & 1 deletion src/components/navigation/UserDropdown.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import React, { FC, useCallback, useState } from 'react'
import { AccountCircle } from '@mui/icons-material'
import { IconButton, Menu, MenuItem } from '@mui/material'
import useAuth from '../useAuth'
import useAuth from '../../contexts/useAuth'
import UserChangePasswordModalForm from '../user/UserChangePasswordModalForm'

const UserDropdown: FC = () => {
Expand Down
2 changes: 1 addition & 1 deletion src/components/settings/InactiveSettingsCard.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { FC, useState } from 'react'
import { useQuery } from '@tanstack/react-query'
import { useSettingsApi } from '../../api/Settings'
import ErrorView from '../../views/ErrorView'
import useAuth from '../useAuth'
import useAuth from '../../contexts/useAuth'
import Loader from '../Loader'
import { Box, Button, Card, CardContent, Divider, Grid, Typography } from '@mui/material'
import { Stack } from '@mui/system'
Expand Down
2 changes: 1 addition & 1 deletion src/components/settings/InactiveSettingsForm.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { FC } from 'react'
import { SubmitHandler, useForm } from 'react-hook-form'
import { useQueryClient } from '@tanstack/react-query'
import { InactiveSetting, Setting, useSettingsApi } from '../../api/Settings'
import useAuth from '../useAuth'
import useAuth from '../../contexts/useAuth'
import { FormGroup, Grid, TextField } from '@mui/material'

interface Props {
Expand Down
2 changes: 1 addition & 1 deletion src/components/settings/RefreshIntervalCard.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { FC, useState } from 'react'
import { useQuery } from '@tanstack/react-query'
import { useSettingsApi } from '../../api/Settings'
import ErrorView from '../../views/ErrorView'
import useAuth from '../useAuth'
import useAuth from '../../contexts/useAuth'
import { Box, Button, Card, CardContent, Divider, Stack, Typography } from '@mui/material'
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'
import { faPencil } from '@fortawesome/free-solid-svg-icons'
Expand Down
2 changes: 1 addition & 1 deletion src/components/settings/RefreshIntervalForm.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { FC } from 'react'
import { SubmitHandler, useForm } from 'react-hook-form'
import { useQueryClient } from '@tanstack/react-query'
import { RefreshIntervalSetting, Setting, useSettingsApi } from '../../api/Settings'
import useAuth from '../useAuth'
import useAuth from '../../contexts/useAuth'
import { FormGroup, Grid, TextField } from '@mui/material'

interface Props {
Expand Down
2 changes: 1 addition & 1 deletion src/components/ticker/MastodonCard.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import { faMastodon } from '@fortawesome/free-brands-svg-icons'
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'
import { useQueryClient } from '@tanstack/react-query'
import { Ticker, useTickerApi } from '../../api/Ticker'
import useAuth from '../useAuth'
import useAuth from '../../contexts/useAuth'
import MastodonModalForm from './MastodonModalForm'
import { Box, Button, Card, CardActions, CardContent, Divider, Link, Stack, Typography } from '@mui/material'
import { faBan, faGear, faPause, faPlay } from '@fortawesome/free-solid-svg-icons'
Expand Down
2 changes: 1 addition & 1 deletion src/components/ticker/MastodonForm.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import { useQueryClient } from '@tanstack/react-query'
import { FC } from 'react'
import { SubmitHandler, useForm } from 'react-hook-form'
import { Ticker, TickerMastodonFormData, useTickerApi } from '../../api/Ticker'
import useAuth from '../useAuth'
import useAuth from '../../contexts/useAuth'

interface Props {
callback: () => void
Expand Down
2 changes: 1 addition & 1 deletion src/components/ticker/TelegramCard.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'
import { Box, Button, Card, CardActions, CardContent, Divider, Link, Stack, Typography } from '@mui/material'
import { useQueryClient } from '@tanstack/react-query'
import { Ticker, useTickerApi } from '../../api/Ticker'
import useAuth from '../useAuth'
import useAuth from '../../contexts/useAuth'
import TelegramModalForm from './TelegramModalForm'

interface Props {
Expand Down
2 changes: 1 addition & 1 deletion src/components/ticker/TelegramForm.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { FC } from 'react'
import { SubmitHandler, useForm } from 'react-hook-form'
import { useQueryClient } from '@tanstack/react-query'
import { Ticker, useTickerApi } from '../../api/Ticker'
import useAuth from '../useAuth'
import useAuth from '../../contexts/useAuth'
import { Checkbox, FormControlLabel, FormGroup, Grid, TextField, Typography } from '@mui/material'

interface Props {
Expand Down
2 changes: 1 addition & 1 deletion src/components/ticker/Ticker.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import { Alert, Box, Button, Card, CardContent, Grid, Stack, Typography } from '
import TickerModalForm from './TickerModalForm'
import TickerDangerZoneCard from './TickerDangerZoneCard'
import TickerUsersCard from './TickerUsersCard'
import useAuth from '../useAuth'
import useAuth from '../../contexts/useAuth'

interface Props {
ticker: Model
Expand Down
2 changes: 1 addition & 1 deletion src/components/ticker/TickerList.test.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { QueryClient, QueryClientProvider } from '@tanstack/react-query'
import { render } from '@testing-library/react'
import { MemoryRouter } from 'react-router'
import { AuthProvider } from '../useAuth'
import { AuthProvider } from '../../contexts/AuthContext'
import TickerList from './TickerList'
import TickerListItems from './TickerListItems'

Expand Down
2 changes: 1 addition & 1 deletion src/components/ticker/TickerListItem.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import React, { FC, useState } from 'react'
import { useNavigate } from 'react-router'
import { Ticker } from '../../api/Ticker'
import useAuth from '../useAuth'
import useAuth from '../../contexts/useAuth'
import { colors, IconButton, MenuItem, Popover, TableCell, TableRow, Typography } from '@mui/material'
import { MoreVert } from '@mui/icons-material'
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'
Expand Down
2 changes: 1 addition & 1 deletion src/components/ticker/TickerListItems.test.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import { GetTickersQueryParams } from '../../api/Ticker'
import TickerListItems from './TickerListItems'
import { QueryClient, QueryClientProvider } from '@tanstack/react-query'
import { MemoryRouter } from 'react-router'
import { AuthProvider } from '../useAuth'
import { AuthProvider } from '../../contexts/AuthContext'
import sign from 'jwt-encode'

describe('TickerListItems', function () {
Expand Down
2 changes: 1 addition & 1 deletion src/components/ticker/TickerListItems.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { CircularProgress, Stack, TableBody, TableCell, TableRow, Typography } f
import { FC } from 'react'
import { GetTickersQueryParams, useTickerApi } from '../../api/Ticker'
import TickerListItem from './TickerListItem'
import useAuth from '../useAuth'
import useAuth from '../../contexts/useAuth'
import { useQuery } from '@tanstack/react-query'
import { Navigate } from 'react-router'

Expand Down
2 changes: 1 addition & 1 deletion src/components/ticker/TickerModalDelete.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { FC, useCallback } from 'react'
import { useQueryClient } from '@tanstack/react-query'
import { Ticker, useTickerApi } from '../../api/Ticker'
import useAuth from '../useAuth'
import useAuth from '../../contexts/useAuth'
import Modal from '../common/Modal'

interface Props {
Expand Down
2 changes: 1 addition & 1 deletion src/components/ticker/TickerResetModal.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { FC, useCallback } from 'react'
import { Ticker, useTickerApi } from '../../api/Ticker'
import useAuth from '../useAuth'
import useAuth from '../../contexts/useAuth'
import { useQueryClient } from '@tanstack/react-query'
import Modal from '../common/Modal'

Expand Down
2 changes: 1 addition & 1 deletion src/components/ticker/TickerUserModalDelete.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { FC, useCallback } from 'react'
import { useQueryClient } from '@tanstack/react-query'
import { Ticker, useTickerApi } from '../../api/Ticker'
import { User } from '../../api/User'
import useAuth from '../useAuth'
import useAuth from '../../contexts/useAuth'
import Modal from '../common/Modal'

interface Props {
Expand Down
2 changes: 1 addition & 1 deletion src/components/ticker/TickerUsersCard.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { FC, useState } from 'react'
import { useQuery } from '@tanstack/react-query'
import { Ticker, useTickerApi } from '../../api/Ticker'
import TickerUserList from './TickerUserList'
import useAuth from '../useAuth'
import useAuth from '../../contexts/useAuth'
import Loader from '../Loader'
import ErrorView from '../../views/ErrorView'
import { Button, Card, CardContent, Typography } from '@mui/material'
Expand Down
12 changes: 9 additions & 3 deletions src/components/ticker/TickerUsersForm.test.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,12 @@ import { render, screen } from '@testing-library/react'
import TickerUsersForm from './TickerUsersForm'
import { vi } from 'vitest'
import userEvent from '@testing-library/user-event'
import { MemoryRouter } from 'react-router'
import { AuthProvider } from '../../contexts/AuthContext'

describe('TickerUsersForm', () => {
beforeEach(() => {
fetch.resetMocks()
fetchMock.resetMocks()
})

function setup(defaultValue: Array<User>, ticker: Ticker, onSubmit: () => void) {
Expand All @@ -21,7 +23,11 @@ describe('TickerUsersForm', () => {
})
return render(
<QueryClientProvider client={client}>
<TickerUsersForm defaultValue={defaultValue} onSubmit={onSubmit} ticker={ticker} />
<MemoryRouter>
<AuthProvider>
<TickerUsersForm defaultValue={defaultValue} onSubmit={onSubmit} ticker={ticker} />
</AuthProvider>
</MemoryRouter>
</QueryClientProvider>
)
}
Expand All @@ -35,7 +41,7 @@ describe('TickerUsersForm', () => {
id: 1,
email: '[email protected]',
} as User
fetch.mockResponseOnce(
fetchMock.mockResponseOnce(
JSON.stringify({
data: {
users: [user],
Expand Down
2 changes: 1 addition & 1 deletion src/components/ticker/TickerUsersForm.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import { SubmitHandler, useForm } from 'react-hook-form'
import { useQueryClient } from '@tanstack/react-query'
import { Ticker, useTickerApi } from '../../api/Ticker'
import { User, useUserApi } from '../../api/User'
import useAuth from '../useAuth'
import useAuth from '../../contexts/useAuth'
import { Box, Chip, FormControl, InputLabel, MenuItem, OutlinedInput, Select, SelectChangeEvent, useTheme } from '@mui/material'

interface Props {
Expand Down
12 changes: 9 additions & 3 deletions src/components/ticker/TickersDropdown.test.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,12 @@ import { QueryClient, QueryClientProvider } from '@tanstack/react-query'
import { Ticker } from '../../api/Ticker'
import { vi } from 'vitest'
import userEvent from '@testing-library/user-event'
import { AuthProvider } from '../../contexts/AuthContext'
import { MemoryRouter } from 'react-router'

describe('TickersDropdown', () => {
beforeEach(() => {
fetch.resetMocks()
fetchMock.resetMocks()
})

function setup(defaultValue: Array<Ticker>, onChange: (tickers: Array<Ticker>) => void) {
Expand All @@ -20,7 +22,11 @@ describe('TickersDropdown', () => {
})
return render(
<QueryClientProvider client={client}>
<TickersDropdown defaultValue={defaultValue} name="tickers" onChange={onChange} />
<MemoryRouter>
<AuthProvider>
<TickersDropdown defaultValue={defaultValue} name="tickers" onChange={onChange} />
</AuthProvider>
</MemoryRouter>
</QueryClientProvider>
)
}
Expand All @@ -30,7 +36,7 @@ describe('TickersDropdown', () => {
id: 1,
title: 'Ticker 1',
}
fetch.mockResponseOnce(
fetchMock.mockResponseOnce(
JSON.stringify({
data: {
tickers: [ticker],
Expand Down
2 changes: 1 addition & 1 deletion src/components/ticker/TickersDropdown.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { FC, useEffect, useState } from 'react'
import { Box, Chip, FormControl, InputLabel, MenuItem, OutlinedInput, Select, SelectChangeEvent, SxProps, useTheme } from '@mui/material'
import { GetTickersQueryParams, Ticker, useTickerApi } from '../../api/Ticker'
import useAuth from '../useAuth'
import useAuth from '../../contexts/useAuth'

interface Props {
name: string
Expand Down
2 changes: 1 addition & 1 deletion src/components/ticker/form/Domain.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { TextField } from '@mui/material'
import { FC } from 'react'
import { Controller, useFormContext } from 'react-hook-form'
import useAuth from '../../useAuth'
import useAuth from '../../../contexts/useAuth'

const Domain: FC = () => {
const { control } = useFormContext()
Expand Down
2 changes: 1 addition & 1 deletion src/components/ticker/form/TickerForm.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import React, { FC, useCallback, useEffect } from 'react'
import { Ticker, useTickerApi } from '../../../api/Ticker'
import { FormProvider, SubmitHandler, useForm } from 'react-hook-form'
import { useQueryClient } from '@tanstack/react-query'
import useAuth from '../../useAuth'
import useAuth from '../../../contexts/useAuth'
import LocationSearch, { Result } from '../LocationSearch'
import { MapContainer, Marker, TileLayer } from 'react-leaflet'
import { Alert, Button, FormGroup, Grid, Stack, Typography } from '@mui/material'
Expand Down
2 changes: 1 addition & 1 deletion src/components/user/UserChangePasswordForm.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { FC } from 'react'
import { Alert, FormGroup, Grid, TextField } from '@mui/material'
import { SubmitHandler, useForm } from 'react-hook-form'
import useAuth from '../useAuth'
import useAuth from '../../contexts/useAuth'
import { useUserApi } from '../../api/User'

interface Props {
Expand Down
2 changes: 1 addition & 1 deletion src/components/user/UserChangePasswordModalForm.test.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@ import { render, screen } from '@testing-library/react'
import UserChangePasswordModalForm from './UserChangePasswordModalForm'
import { QueryClient, QueryClientProvider } from '@tanstack/react-query'
import { MemoryRouter } from 'react-router'
import { AuthProvider } from '../useAuth'
import userEvent from '@testing-library/user-event'
import { vi } from 'vitest'
import { AuthProvider } from '../../contexts/AuthContext'

describe('UserChangePasswordModalForm', () => {
beforeEach(() => {
Expand Down
2 changes: 1 addition & 1 deletion src/components/user/UserForm.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { FC, useEffect } from 'react'
import { SubmitHandler, useForm } from 'react-hook-form'
import { User, useUserApi } from '../../api/User'
import { useQueryClient } from '@tanstack/react-query'
import useAuth from '../useAuth'
import useAuth from '../../contexts/useAuth'
import { FormControlLabel, Checkbox, FormGroup, TextField, Typography, Grid, Divider } from '@mui/material'
import TickersDropdown from '../ticker/TickersDropdown'
import { Ticker } from '../../api/Ticker'
Expand Down
2 changes: 1 addition & 1 deletion src/components/user/UserList.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { FC } from 'react'
import { useQuery } from '@tanstack/react-query'
import UserListItems from './UserListItems'
import useAuth from '../useAuth'
import useAuth from '../../contexts/useAuth'
import { useUserApi } from '../../api/User'
import ErrorView from '../../views/ErrorView'
import { Table, TableCell, TableContainer, TableHead, TableRow } from '@mui/material'
Expand Down
2 changes: 1 addition & 1 deletion src/components/user/UserModalDelete.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { FC, useCallback } from 'react'
import { useQueryClient } from '@tanstack/react-query'
import { User, useUserApi } from '../../api/User'
import useAuth from '../useAuth'
import useAuth from '../../contexts/useAuth'
import Modal from '../common/Modal'

interface Props {
Expand Down
Loading

0 comments on commit 4d54bfc

Please sign in to comment.