Skip to content

Commit

Permalink
Add data-dusk DOM hooks
Browse files Browse the repository at this point in the history
  • Loading branch information
calebporzio committed Aug 24, 2017
1 parent 69d42b1 commit 1ca716b
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 1 deletion.
7 changes: 6 additions & 1 deletion src/ElementResolver.php
Expand Up @@ -365,9 +365,14 @@ public function format($selector)
})->toArray();

$selector = str_replace(
array_keys($sortedElements), array_values($sortedElements), $selector
array_keys($sortedElements), array_values($sortedElements), $originalSelector = $selector
);

// If a '@' element alias hasn't been defined, look for a data-dusk DOM hook.
if (starts_with($selector, '@') && $selector === $originalSelector) {
$selector = '[data-dusk="'.explode('@', $selector)[1].'"]';
}

return trim($this->prefix.' '.$selector);
}
}
2 changes: 2 additions & 0 deletions tests/ElementResolverTest.php
Expand Up @@ -114,6 +114,8 @@ public function test_format_correctly_formats_selectors()
]);
$this->assertEquals('prefix #first', $resolver->format('@modal'));
$this->assertEquals('prefix #second', $resolver->format('@modal-second'));
$this->assertEquals('prefix #first-third', $resolver->format('@modal-third'));
$this->assertEquals('prefix [data-dusk="missing-element"]', $resolver->format('@missing-element'));
}

public function test_find_by_id_with_colon()
Expand Down

0 comments on commit 1ca716b

Please sign in to comment.