mirror of
https://github.com/10h30/Test-Eloquent-Relationships.git
synced 2026-07-17 13:43:36 +09:00
62 lines
2.3 KiB
Markdown
62 lines
2.3 KiB
Markdown
## Test Your Laravel Eloquent Relationships Skills
|
|
|
|
This repository is a test for you: perform a set of tasks listed below, and fix the PHPUnit tests, which are currently intentionally failing.
|
|
|
|
To test if all the functions work correctly, there are PHPUnit tests in `tests/Feature/RelationshipsTest.php` file.
|
|
|
|
In the very beginning, if you run `php artisan test`, or `vendor/bin/phpunit`, all tests fail.
|
|
Your task is to make those tests pass.
|
|
|
|
## How to Submit Your Solution
|
|
|
|
If you want to submit your solution, you should make a Pull Request to the `main` branch.
|
|
It will automatically run the tests via GitHub Actions and will show you/me if the test pass.
|
|
|
|
If you don't know how to make a Pull Request, [here's my video with instructions](https://www.youtube.com/watch?v=vEcT6JIFji0).
|
|
|
|
This task is mostly self-served, so I'm not planning review or merge the Pull Requests. This test is for yourselves to assess your skills, the automated tests will be your answer if you passed the test :)
|
|
|
|
|
|
## Questions / Problems?
|
|
|
|
If you're struggling with some tasks, or you have suggestions how to improve the task, create a GitHub Issue.
|
|
|
|
Good luck!
|
|
|
|
---
|
|
|
|
## Task 1. HasMany Defined Incorrectly.
|
|
|
|
In `app/Models/User.php` file, the relationship is missing some parameter. Fix this.
|
|
|
|
Test method `test_user_create_task()`.
|
|
|
|
---
|
|
|
|
## Task 2. BelongsTo with Empty Relationship.
|
|
|
|
In the route `/tasks`, the table is loading with error, if it can't find the user related to the task. Fix this: the table should load and just show empty space in case of no user.
|
|
|
|
There are multiple ways how to fix this, choose whichever way works for you.
|
|
|
|
Test method `test_task_with_no_user()`.
|
|
|
|
---
|
|
|
|
## Task 3. Two-level Relationship.
|
|
|
|
In the route `/users/{user}`, the table should load the comments that are written on the task that belong to a user. Define the relationship from User to Comment in the User model, so that the Blade file users/show.blade.php would work.
|
|
|
|
Test method `test_show_users_comments()`.
|
|
|
|
---
|
|
|
|
## Task 4. BelongsToMany - Pivot Table Name.
|
|
|
|
In the route `/roles`, the table should load the roles with the number of users belonging to them. But the relationship in `app/Models/Role.php` model is defined incorrectly, fix that relationship definition.
|
|
|
|
Test method `test_show_roles_with_users()`.
|
|
|
|
---
|
|
|