В настоящее время я пытаюсь имитировать useQuery из index.ts, однако я не могу этого сделать, поскольку useMenu является значением только для чтения.
index.ts
import { useQuery } from "@apollo/react-hooks";
import { MENU } from "../../graphql/queries/menu";
export const useMenu = (myNumber: number) => {
return useQuery(MENU, {
variables: { myNumber }
});
};
menu.ts
import gql from "graphql-tag";
export const MENU = gql`
fragment MenuItemFields on MenuItem {
field1
field2
field3
field4
}
query Menu($myNumber: Float!) {
menu(myNumber: $myNumber) {
items {
...MenuItemFields
items {
...MenuItemFields
items {
...MenuItemFields
items {
...MenuItemFields
}
}
}
}
}
}
`;
menu.test.ts
import { useQuery } from '@apollo/react-hooks';
import {httpResponse as mockMenuAPIString} from '../../../../../mocks/expectations/Storm-Hub-Menu/storm-hub-menu.json';
import {getEligibleMenuEntries} from '../../../../server/modules/graphql/utils';
import {useMenu} from '../../services/menu'
it('returns valid Menu', () => {
// Convert mockMenuAPI to mockMenu
const mockMenuAPI = JSON.parse(mockMenuAPIString.body);
const mockMenu = getEligibleMenuEntries(mockMenuAPI); //Working
... How do I mock the useQuery?
const res = useMenu(10000);
expect(res).toEqual(mockMenu);
});
Я пытался следовать документация , но я не смог реализовать это, так как я не возвращаю HTML, а только результат.
В примере
Любая помощь приветствуется.