2021-12-05 13:20:12 +02:00
## Test Your Laravel File Upload Skills
2021-12-05 12:57:24 +02:00
2021-12-05 13:20:12 +02:00
This repository is a test for you: perform a set of tasks listed below, and fix the PHPUnit tests, which are currently intentionally failing.
2021-12-05 12:57:24 +02:00
2021-12-05 13:20:12 +02:00
To test if all the functions work correctly, there are PHPUnit tests in `tests/Feature/FileUploadTest.php` file.
2021-12-05 12:57:24 +02:00
2021-12-05 13:20:12 +02:00
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.
2021-12-05 12:57:24 +02:00
2021-12-05 13:20:12 +02:00
## How to Submit Your Solution
2021-12-05 12:57:24 +02:00
2021-12-05 13:20:12 +02:00
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.
2021-12-05 12:57:24 +02:00
2021-12-05 13:20:12 +02:00
If you don't know how to make a Pull Request, [here's my video with instructions ](https://www.youtube.com/watch?v=vEcT6JIFji0 ).
2021-12-05 12:57:24 +02:00
2021-12-05 13:20:12 +02:00
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 :)
2021-12-05 12:57:24 +02:00
2021-12-05 13:20:12 +02:00
## Questions / Problems?
2021-12-05 12:57:24 +02:00
2021-12-05 13:20:12 +02:00
If you're struggling with some tasks, or you have suggestions how to improve the task, create a GitHub Issue.
2021-12-05 12:57:24 +02:00
2021-12-05 13:20:12 +02:00
Good luck!
2021-12-05 12:57:24 +02:00
2021-12-05 13:20:12 +02:00
---
2021-12-05 12:57:24 +02:00
2021-12-05 13:20:12 +02:00
## Task 1. Original Filename.
2021-12-05 12:57:24 +02:00
2021-12-05 13:20:12 +02:00
In `app/Http/Controllers/ProjectController.php` file, in the `store()` method, get the original filename, to later save it to the DB.
2021-12-05 12:57:24 +02:00
2021-12-05 13:20:12 +02:00
Test method `test_original_filename_upload()` .
2021-12-05 12:57:24 +02:00
2021-12-05 13:20:12 +02:00
---
2021-12-05 13:44:24 +02:00
## Task 2. File Size Validation.
In `app/Http/Controllers/ProjectController.php` file, in the `store()` method, put in the validation rule so "logo" file would be MAX 1 megabyte
Test method `test_file_size_validation()` .
---
2021-12-06 07:58:56 +02:00
## Task 3. Update: Delete Old File
In `app/Http/Controllers/HouseController.php` file, in the `update()` method, we upload the new file but don't delete the old one. Help to clean up the disk and delete the old file.
Test method `test_update_file_remove_old_one()` .
---
2021-12-06 08:10:53 +02:00
## Task 4. Download the Uploaded File
In `app/Http/Controllers/HouseController.php` file, in the `download()` method, return the response that would automatically download the file with `$house->photo` filename from `storage/app/houses` folder.
Test method `test_download_uploaded_file()` .
---