Testing Nova
This project is to show examples of my approach to testing Nova. This app is TDD, so all functionality should have a corresponding test. Tests are broken up into the the Feature directory under Nova and by model from there.
There is also an API that was utilized for front end access, so the example code of how I went about that is also in this project.
Project Overview
This is an app I made for a customer that required a dropbox style application with some custom fucntionality. Some of functionality has been scrubbed due to proprietary processes, as well as code being stripped due to premium themes, etc. What is left is a Nova code base focusing on:
- Projects, they can have:
- Files and Email Addresses
- Email Addresses have an action to be notified they have access to a project
- Email Addresses can receive an email with a signed URL
- Signed URLs can be used to see and download files
- Email Addresses can upload files back to the UI
Nova has administration screens for each model, actions, and relationships described above.
Setup
- Clone the repo
- Run
cp .env.example .env
- Drop Nova into the project root at /nova (tested up to Nova release 1.0.12)
- Run
composer install
- Run
php artisan key:generate
- Run
php artisan nova:install
- Run
vendor/phpunit/phpunit/phpunit
from this directory
Homestead is installed per project here and can be run to view the UI if desired.
- Follow these instructions
- Run
vagrant up
There is also one Dusk test to test the one front end interface.
- Follow the Homestead instructions above, and make sure vagrant is running
- Update
.env
with your database connection - Run
php artisan dusk
Seeds are available in this repo to get you going
- Run
php artisan migrate:refresh --seed
The default Nova login generated by the seeder is:
U: youremail@address.com
P: Af2URF2oCp