All files / components/TabComponent SettingsTabComponent.jsx

100% Statements 31/31
100% Branches 4/4
100% Functions 4/4
100% Lines 31/31

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 401x 1x 1x 1x   1x 23x 1x 1x   23x 1x 1x 1x 1x 1x 1x 1x 1x   23x 23x 23x 23x 23x 23x 23x     23x 1x 1x   23x 23x 23x     23x  
import React from "react";
import CanvasApiForm from "main/components/Settings/CanvasApiForm";
import { useBackendMutation } from "main/utils/useBackend";
import { toast } from "react-toastify";
 
export default function SettingsTabComponent({ courseId, testIdPrefix }) {
  const onSuccessCanvasCredentialsAdded = () => {
    toast("Canvas credentials successfully added.");
  };
 
  const objectToAxiosParamsCanvasToken = (formData) => ({
    url: `/api/courses/updateCourseCanvasToken`,
    method: "PUT",
    params: {
      courseId: courseId,
      canvasCourseId: formData.canvasCourseId,
      canvasApiToken: formData.canvasApiToken,
    },
  });
 
  const canvasMutation = useBackendMutation(
    objectToAxiosParamsCanvasToken,
    {
      onSuccess: onSuccessCanvasCredentialsAdded,
    },
    // Stryker disable next-line all : hard to set up test for caching
    [`/api/courses/getCanvasInfo?courseId=${courseId}`],
  );
 
  const handleSubmit = (formData) => {
    canvasMutation.mutate(formData);
  };
 
  return (
    <div data-testid={`${testIdPrefix}-canvasForm`}>
      <CanvasApiForm submitAction={handleSubmit} courseId={courseId} />
    </div>
  );
}