javascripttestcafe

TestCafe expect text to equal one of the following


I'm writing a test where if the user clicks a button, there should only be 2 scenarios (texts) that could happen.

For example

await t
    .click('button')
    .expect(Selector('div#result').textContent)
    .eql('My text A')
    // or 'My text B' ??

How can I test this in TestCafe?


Solution

  • First you await the user clicks the button, then save the textContent in a variable, and inside expect you can check on both conditions with or operator ||, if false it will output the message inside the ok.

    test('Button click results in one of two texts', async t => {
        await t.click('button');
        
        const textContent = await Selector('div#result').textContent;
    
        await t.expect(textContent === 'My text A' || textContent === 'My text B')
            .ok('Wrong text.');
    });