I am looking to create unit tests for component below mainly on checking addLayer and removeLayer being called,
function App (()=>{
const marker = useRef<L.Marker | undefined>( undefined);
const fg : L.FeatureGroup<any> = fg();
useEffect(()=>{
var myIcon = L.divIcon({className:'my-div-icon',html:renderToStaticMarkup(<ArrowRight/>)});
marker.current = L.marker([50.5, 30.5], {icon:myIcon});
if(fg) fg.addLayer(marker.current);
<div>Text</div>;
return (){
if(marker.current && fg)
{fg.removeLayer(marker.current);}
}
},[fg]);
});
RTL test:
const mockOnClick = jest.fn();
const mockAddLayer = jest.fn();
describe("Test Leaflet methods",()=>{
it("Test add Layer",()=>{
const {wrapper} = render (<App/>);
expect(wrapper.getByText('Text')).toBeTruthy();
expect(mockAddLayer).toBeCalled();
});
});
The above test is failing with
expect(jest.fn()).toBeCalled()
expected number of calls: >= 1
received number of calls: 0
It is possible to test fg.addLayer()
and fg.removeLayer()
are being called? I am a beginner in unit testing with leafletjs.