diff --git a/frontend/src/views/DoctorOrders/NewOrders/NewOrders.test.tsx b/frontend/src/views/DoctorOrders/NewOrders/NewOrders.test.tsx index 3004e37..51dd590 100644 --- a/frontend/src/views/DoctorOrders/NewOrders/NewOrders.test.tsx +++ b/frontend/src/views/DoctorOrders/NewOrders/NewOrders.test.tsx @@ -1,9 +1,18 @@ import React from 'react'; -import { render, screen } from '@testing-library/react'; +import { render, screen, waitFor } from '@testing-library/react'; import NewOrders from './NewOrders'; +import axios from 'axios'; -test('renders NewOrders', () => { - render(); - const linkElement = screen.getByText(/NewOrders/i); - expect(linkElement).toBeInTheDocument(); +jest.mock('axios'); +describe('', () => { + + it('renders the order card with no doctor orders', async () => { + axios.get = jest.fn().mockImplementationOnce(() => Promise.resolve({ data: [] })); + render(); + + await waitFor(() => { + const linkElement = screen.getByText(/NewOrders/i); + expect(linkElement).toBeInTheDocument(); + }); + }); }); \ No newline at end of file diff --git a/frontend/src/views/DoctorOrders/OrderCard/OrderCard.test.tsx b/frontend/src/views/DoctorOrders/OrderCard/OrderCard.test.tsx index 90bd1eb..f7a1888 100644 --- a/frontend/src/views/DoctorOrders/OrderCard/OrderCard.test.tsx +++ b/frontend/src/views/DoctorOrders/OrderCard/OrderCard.test.tsx @@ -1,9 +1,62 @@ import React from 'react'; -import { render, screen } from '@testing-library/react'; +import { render, screen, waitFor } from '@testing-library/react'; import OrderCard from './OrderCard'; +import axios from 'axios'; -test.skip('renders Status', () => { - render(); - const linkElement = screen.getByText("Total"); - expect(linkElement).toBeInTheDocument(); +const doctorOrders = [{caseNumber: '1694010494795', + dispenseStatus: 'Pending', + doctorContact: '716-873-1557', + doctorEmail: 'jane.betty@myhospital.com', + doctorID: '1122334455', + doctorName: 'Dr. Jane Doe', + drugNames:'Turalio 200 MG Oral Capsule', + drugNdcCode: '65597-402-20', + drugPrice: 200, + metRequirements: [], + patientCity: 'Winterfell', + patientCountry: 'US', + patientDOB: '1996-06-01', + patientFirstName: 'Jon', + patientLastName: 'Snow', + patientName: 'Jon Snow', + patientPostalCode: '00008', + patientStateProvince: 'Westeros', + pickupDate: 'Tue Dec 13 2022', + quanitities: '90', + rxDate: '2020-07-11', + simpleDrugName: 'Turalio', + total: 1800}]; + +jest.mock('axios'); + +describe('', () => { + it('renders the order card with no doctor orders', async () => { + axios.get = jest.fn().mockImplementationOnce(() => Promise.resolve({ data: [] })); + render(); + + await waitFor(() => { + expect(screen.getByRole('heading', { name: /no orders yet\./i })).toBeInTheDocument(); + }); + }); + + it('renders the order card and any doctor orders', async () => { + axios.get = jest.fn().mockImplementationOnce(() => Promise.resolve({ data: doctorOrders })); + render(); + + await waitFor(() => { + expect(screen.getByText(/Jon Snow/i)).toBeInTheDocument(); + expect(screen.getByText(/1996/i)).toBeInTheDocument(); + expect(screen.getByText(/Turalio/i)).toBeInTheDocument(); + expect(screen.getByText(/Pending/i)).toBeInTheDocument(); + // expect(screen.getByTestId('quantities')).toBeInTheDocument(); + // expect(screen.getByTestId('drugPrice')).toBeInTheDocument(); + // expect(screen.getByTestId('total')).toBeInTheDocument(); + // expect(screen.getByTestId('doctorName')).toBeInTheDocument(); + // expect(screen.getByTestId('doctorID')).toBeInTheDocument(); + // expect(screen.getByTestId('doctorContact')).toBeInTheDocument(); + // expect(screen.getByTestId('doctorEmail')).toBeInTheDocument(); + // expect(screen.getByTestId('pickupDate')).toBeInTheDocument(); + expect(screen.getByRole('button', { name: /remove all/i })).toBeInTheDocument(); + }); + }); }); \ No newline at end of file diff --git a/frontend/src/views/DoctorOrders/OrderCard/OrderCard.tsx b/frontend/src/views/DoctorOrders/OrderCard/OrderCard.tsx index de771e9..25d1b7d 100644 --- a/frontend/src/views/DoctorOrders/OrderCard/OrderCard.tsx +++ b/frontend/src/views/DoctorOrders/OrderCard/OrderCard.tsx @@ -45,6 +45,7 @@ interface DoctorOrder { const OrderCard = (props: any) => { const [doctorOrder, setDoctorOrders] = useState([]); + const [isLoading, setIsLoading] = useState(true); //remove all doctorOrders const deleteAll = async () => { @@ -59,17 +60,21 @@ const OrderCard = (props: any) => { getAllDoctorOrders(); }, []); - const getAllDoctorOrders = () => { - axios + const getAllDoctorOrders = async () => { + await axios .get(url) .then(function (response) { const allDoctorOrders = response.data; + setIsLoading(false); setDoctorOrders(allDoctorOrders); }) - .catch(error => console.error(`Error: ${error}`)); + .catch(error => { + setIsLoading(false); + console.error(`Error: ${error}`); + }); }; - if (doctorOrder.length < 1) { + if (doctorOrder.length < 1 && !isLoading) { return (

No orders yet.

diff --git a/frontend/src/views/DoctorOrders/PickedUpOrders/PickedUpOrders.test.tsx b/frontend/src/views/DoctorOrders/PickedUpOrders/PickedUpOrders.test.tsx index f7dbf20..4b44995 100644 --- a/frontend/src/views/DoctorOrders/PickedUpOrders/PickedUpOrders.test.tsx +++ b/frontend/src/views/DoctorOrders/PickedUpOrders/PickedUpOrders.test.tsx @@ -1,9 +1,18 @@ import React from 'react'; -import { render, screen } from '@testing-library/react'; +import { render, screen, waitFor } from '@testing-library/react'; import PickedUpOrders from './PickedUpOrders'; +import axios from 'axios'; -test('renders PickedUpOrders', () => { - render(); - const linkElement = screen.getByText(/PickedUpOrders/i); - expect(linkElement).toBeInTheDocument(); +jest.mock('axios'); +describe('', () => { + + it('renders the order card with no doctor orders', async () => { + axios.get = jest.fn().mockImplementationOnce(() => Promise.resolve({ data: [] })); + render(); + + await waitFor(() => { + const linkElement = screen.getByText(/PickedUpOrders/i); + expect(linkElement).toBeInTheDocument(); + }); + }); }); \ No newline at end of file diff --git a/frontend/src/views/DoctorOrders/VerifiedOrders/VerifiedOrders.test.tsx b/frontend/src/views/DoctorOrders/VerifiedOrders/VerifiedOrders.test.tsx index 5cd0e61..2a4b8ae 100644 --- a/frontend/src/views/DoctorOrders/VerifiedOrders/VerifiedOrders.test.tsx +++ b/frontend/src/views/DoctorOrders/VerifiedOrders/VerifiedOrders.test.tsx @@ -1,9 +1,19 @@ import React from 'react'; -import { render, screen } from '@testing-library/react'; +import { render, screen, waitFor } from '@testing-library/react'; import VerifiedOrders from './VerifiedOrders'; +import axios from 'axios'; -test('renders VerifiedOrders', () => { - render(); - const linkElement = screen.getByText(/VerifiedOrders/i); - expect(linkElement).toBeInTheDocument(); -}); \ No newline at end of file + +jest.mock('axios'); +describe('', () => { + + it('renders the order card with no doctor orders', async () => { + axios.get = jest.fn().mockImplementationOnce(() => Promise.resolve({ data: [] })); + render(); + + await waitFor(() => { + const linkElement = screen.getByText(/VerifiedOrders/i); + expect(linkElement).toBeInTheDocument(); + }); + }); +});