All files / pages/Shift ShiftInfoPage.js

100% Statements 9/9
100% Branches 2/2
100% Functions 3/3
100% Lines 9/9

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71                  12x 12x     12x                             12x                             12x 12x 1x     12x                     12x                      
import BasicLayout from "main/layouts/BasicLayout/BasicLayout";
import { useParams } from "react-router-dom";
import { useBackend } from "main/utils/useBackend";
import ShiftInfo from "main/components/Shift/ShiftInfo";
import RideTable from 'main/components/Ride/RideTable';
import { Button } from 'react-bootstrap';
import {useCurrentUser } from 'main/utils/currentUser'
 
export default function ShiftInfoPage() {
    const currentUser = useCurrentUser();
    let { id } = useParams();
 
    const { data: info, _error, _status } =
      useBackend(
        // Stryker disable next-line all : don't test internal caching of React Query
        [`/api/shift?id=${id}`],
        {  // Stryker disable next-line all : GET is the default, so changing this to "" doesn't introduce a bug
          method: "GET",
          url: `/api/shift`,
          // Stryker disable all
          params: {
            id
          }
          // Stryker restore all
        }
      );
 
    const { data: rides, error: _errorRides, status: _statusRides } =
    useBackend(
      // Stryker disable all : hard to test for query caching
      [`/api/ride_request/shiftId?shiftId=${id}`],
      {  // Stryker disable next-line all : GET is the default, so changing this to "" doesn't introduce a bug
        method: "GET",
        url: `/api/ride_request/shiftId`,
        // Stryker disable all
        params: {
          shiftId: id
        }
        // Stryker restore all
      },
      []
    );
      
    const returnButton = () => {
        const handleClick = () => {
            window.history.back();
        };
    
        return (
            <Button
                variant="primary"
                onClick={handleClick}
                data-testid="return-button"
            >
                Return
            </Button>
        );
    };
 
    return (
        <BasicLayout>
            <div className="pt-2">
                <h1>Shift Info</h1>
                {info && <div className="pb-3"><ShiftInfo info={ info }/></div>}
                <h1>Associated Ride Requests</h1>
                <RideTable ride={rides} currentUser={currentUser} />
                {returnButton()}
            </div>
        </BasicLayout>
    )
}