Reputation: 11
the below code is returned from render method. I am sending index value as 0 through props. i am also sending onChange function through props. but onchange function is not calling when i do npm run test.
{props.isEditing ?
<Textbox
id={`beneficiary-value-${props.index}`}
onChange={(e) => props.onChange(e)}
inputType={'number'}
/> :
<span className={"percentage"}>{`${props.beneficiary.percentage}%`}</span>
}
.
test('Beneficiaries renders without crashing', () => {
let beneficiary =
{
"name": "Emma Smith",
"dob": "",
"relationship": "",
"percentage": "",
"hasChanged": false
};
const onChange = jest.fn();
const dom = render(
<BeneficiaryItem beneficiary={beneficiary} index={0} isEditing={true} onChange={(e) => onChange(e)} />
);
const beneficiaryValue = dom.container.querySelector("#beneficiary-value-0");
fireEvent.change(beneficiaryValue);
})
the above is my test case file.
Upvotes: 1
Views: 5438
Reputation: 261
Change event should be fired as below, it expects new value as an argument:
fireEvent.change(beneficiaryValue, {
target: { value: "Changed Value" }
});
Please refer to React testing library documentation for more details.
Upvotes: 2