The answer was to first, add a custom dusk selector to the checkbox using the row index:
<template #cell(selected)="row">
<b-form-checkbox
v-model="row.item.check"
@input="rowCheckboxClick($event, row.index, row.item)"
plain
:dusk="'my-custom-selector-' + row.index"
>
</b-form-checkbox>
</template>
and second, use the selector within the test.
->whenAvailable(new PursuitModelRestoreDeletedModal(), function(Browser $browser) {
$browser->waitForText('Click on the checkbox in the Select column')
->assertSee('My Modal Title')
->check('@my-custom-selector-0')
->check('@my-custom-selector-1')
->check('@my-custom-selector-2')
->check('@my-custom-selector-3')
->click('@ok-button');
})
Yes, the code could probably be a little cleaner with a loop instead of having each selector listed separately, but this works.