I'm looking for help writing jest test for my onsuccess event handler for my lightning-record-edit form.
I'm new to jest so forgive me if this is covered somewhere else, I just haven't been able to find it on my own.
Below are snippets from my code, I had to re-write and generalize it, so please forgive any spelling mistakes.
html:
<template>
<lighting-record-edit-form record-id={recordId} onsuccess={handleSuccess}>
...
<lightning-button variant="brand" type="submit" label="Submit"></lightning-button>
</lightning-record-edit-form>
</template>
js:
handleSuccess() {
const event = new CustomEvent('formsaved');
this.dispatchEvent(event);
}
test.js:
var element = createElement('c-test-component', {is: TestComponent});
document.body.appendChild(element);
const handler = jest.fn();
element.addEventListener('formsaved', handler);
const btn = element.shadowRoot.querySelector('lightning-button');
btn.click();
return Promise.resolve().then(() => {
expect(handler).toHaveBeenCalled();
});
It fails saying the mock function was not called. I have similar handlers for onsubmit and onerror as well.
const form = element.shadowRoot.querySelector('lightning-record-edit-form'); form.submit();
– aaron May 1 '19 at 20:02lightning-record-edit-form
has only a basic mock implementation. github.com/salesforce/lwc-jest/blob/master/src/lightning-mocks/… Not sure what you want to test. If you've functionality that depends on listening to aformsaved
event you've to fire the event yourself. – muenzpraeger May 2 '19 at 5:20