kandimat/redaktions-app/src/backend/mutations/answer.mock.ts
2021-01-30 18:15:51 +01:00

85 lines
2 KiB
TypeScript

import { MockedResponse } from "@apollo/client/testing";
import {
ADD_ANSWER,
AddAnswerResponse,
AddAnswerVariables,
EDIT_ANSWER,
EditAnswerPayload,
EditAnswerResponse,
EditAnswerVariables,
} from "./answer";
import { answersMock } from "../queries/answer.mock";
import { CandidatePosition } from "../../components/CandidatePositionLegend";
import { FullAnswerResponse } from "../queries/answer";
const editAnswerVariables: EditAnswerVariables = {
id: "a22",
text: "New answer",
};
const getEditedAnswerMock = (): EditAnswerPayload | null => {
const originalAnswer = answersMock.find(
(a) => a.id === editAnswerVariables.id
);
return originalAnswer
? {
answer: {
...originalAnswer,
text:
editAnswerVariables.text === undefined
? originalAnswer.text
: editAnswerVariables.text,
position:
editAnswerVariables.position === undefined
? originalAnswer.position
: editAnswerVariables.position,
},
__typename: "UpdateAnswerPayload",
}
: null;
};
export const editAnswerMock: Array<MockedResponse<EditAnswerResponse>> = [
{
request: {
query: EDIT_ANSWER,
variables: editAnswerVariables,
},
result: {
data: {
updateAnswer: getEditedAnswerMock(),
},
},
},
];
const addAnswerVariables: AddAnswerVariables = {
position: CandidatePosition.positive,
questionRowId: 3,
personRowId: 2,
};
const addedAnswerMock: FullAnswerResponse = {
id: "newA",
...addAnswerVariables,
text: addAnswerVariables.text !== undefined ? addAnswerVariables.text : null,
__typename: "Answer",
};
export const addAnswerMock: Array<MockedResponse<AddAnswerResponse>> = [
{
request: {
query: ADD_ANSWER,
variables: addAnswerVariables,
},
result: {
data: {
createAnswer: {
answer: addedAnswerMock,
__typename: "CreateAnswerPayload",
},
},
},
},
];