I'm developing an Restfull API, so I don't have any views. I'm working with the repositories pattern and trying to make TDD on this project.
For my controllers I'm making functional tests (to verify if a user is inserted in the database for example), and acceptance tests (to verify if the response has the correct fields).
My question is: in this two kinds of tests my repositories are touched and tested (I'm generating coverage reports with PHPUnit), so I have to do unit tests on the repositories or the validators in this case?
I usually use integration tests for repositories, just because the query builder and eloquent classes are really annoying to mock due to the fluent interfaces. I then mock the repositories themselves when unit-testing classes that depend on them.
Personally, I'd only use acceptance tests for controllers. Instead of touching the database directly, you should issue another API request and see if the change you made is properly reflected. For example:
DELETE /api/resource/1
Verify response HTTP code is 200
GET /api/resource/1
Verify response HTTP code is 404 (or however your API does it)