85 lines
2 KiB
TypeScript
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",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
];
|