import * as React from 'react'; import expect from 'expect'; import { useEffect } from 'react'; import { screen, render, waitFor } from '@testing-library/react'; import { CoreAdminContext } from '../../core'; import { testDataProvider } from '../../dataProvider'; import { useSaveContext } from '../saveContext'; import { CreateBase } from './CreateBase'; describe('CreateBase', () => { const defaultProps = { hasCreate: true, hasEdit: true, hasList: true, hasShow: true, id: 12, resource: 'posts', debounce: 200, }; it('should give access to the save function', async () => { const dataProvider = testDataProvider({ create: jest.fn((_, { data }) => Promise.resolve({ data: { id: 1, ...data } }) ), }); const Child = () => { const saveContext = useSaveContext(); useEffect(() => { saveContext.save({ test: 'test' }); }, []); // eslint-disable-line return null; }; render( ); await waitFor(() => { expect(dataProvider.create).toHaveBeenCalledWith('posts', { data: { test: 'test' }, }); }); }); it('should allow to override the onSuccess function', async () => { const dataProvider = testDataProvider({ create: jest.fn((_, { data }) => Promise.resolve({ data: { id: 1, ...data } }) ), }); const onSuccess = jest.fn(); const Child = () => { const saveContext = useSaveContext(); const handleClick = () => { saveContext.save({ test: 'test' }); }; return