dannyxnda
dannyxnda

Reputation: 1014

Testing library React - expect multiple elements to pass a specified condition

I have multiple buttons in my component and all of them should be disabled.

const buttons = screen.getAllByRole('button');

expect(ALL BUTTONS).toHaveAttribute('disabled'); // I want something like this.

How can we write this in the most convenient way?

Upvotes: 11

Views: 9216

Answers (2)

Deotyma
Deotyma

Reputation: 948

I used this code in my test:

buttons.forEach((button) =>{
    expect(button).toBeDisabled()
})

or you can write this:

 expect(buttons).toBeDisabled().toHaveLength(2)//here you put number of your buttons

Upvotes: 2

diedu
diedu

Reputation: 20775

Iterate the buttons array and run the expect for each one

buttons.forEach((button) => {
   expect(button).toHaveAttribute('disabled');
})

Upvotes: 12

Related Questions