Skip to content

Commit a6f85ec

Browse files
authored
Merge pull request #6 from TappNetwork/add_route_test_update_readme
Add route test update readme
2 parents a1b1249 + 6c461a1 commit a6f85ec

File tree

5 files changed

+104
-9
lines changed

5 files changed

+104
-9
lines changed

README.md

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,11 @@
33
<img alt="Tapp Laravel 12 Starter Kit Light Logo" src="https://raw.githubusercontent.com/TappNetwork/laravel-starter-kit/main/art/logo_light.png">
44
</picture>
55

6+
[![Latest Version on Packagist](https://img.shields.io/packagist/v/tapp/laravel-starter-kit.svg?style=flat-square&colorA=3d454d&colorB=2a7de1)](https://packagist.org/packages/tapp/laravel-starter-kit)
7+
![GitHub Tests Action Status](https://github.com/TappNetwork/laravel-starter-kit/actions/workflows/test.yml/badge.svg?style=flat-square)
8+
![GitHub Pint Action Status](https://github.com/TappNetwork/laravel-starter-kit/actions/workflows/pint.yml/badge.svg?style=flat-square)
9+
[![Total Downloads](https://img.shields.io/packagist/dt/tapp/laravel-starter-kit.svg?style=flat-square&colorA=3d454d&colorB=2a7de1)](https://packagist.org/packages/tapp/laravel-starter-kit)
10+
611
# Tapp Laravel 12 Starter Kit
712

813
Key features include:
@@ -49,24 +54,22 @@ While TailwindCSS and Alpine.js are included for styling and frontend interactiv
4954
## Quick Start
5055

5156
```bash
52-
composer create-project tapp/laravel-starter-kit
57+
composer create-project tapp/laravel-starter-kit <your-project-name-here>
5358
```
5459

5560
Install dependencies
5661

5762
```bash
58-
composer install
59-
6063
npm install
6164
npm run build
6265
```
6366

64-
Setup environment
67+
Setup the environment
6568

66-
```bash
67-
cp .env.example .env
69+
In the `.env` file, update the database name and other env vars according to your needs:
6870

69-
# in the newly created .env file, configure your database:
71+
```bash
72+
# in the .env file, configure your database:
7073

7174
DB_CONNECTION=mysql
7275
DB_HOST=127.0.0.1

public/images/og.jpg

39.7 KB
Loading

tests/Feature/RouteTest.php

Lines changed: 89 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,89 @@
1+
<?php
2+
3+
use App\Models\User;
4+
use Illuminate\Foundation\Testing\RefreshDatabase;
5+
use Illuminate\Support\Facades\Route;
6+
7+
uses(RefreshDatabase::class);
8+
9+
beforeEach(function () {
10+
$this->seed();
11+
});
12+
13+
// Helper functions to get routes
14+
function getGuestRoutes()
15+
{
16+
$rejectRoutes = [
17+
'pulse',
18+
'auth/google',
19+
'user/confirm-password',
20+
'user/confirmed-password-status',
21+
'two-factor-challenge',
22+
'user/two-factor-qr-code',
23+
'user/two-factor-secret-key',
24+
'user/two-factor-recovery-codes',
25+
'livewire/livewire.min.js',
26+
];
27+
28+
$rejectFrontendRoutes = [
29+
'/',
30+
];
31+
32+
$frontendRoutes = [
33+
];
34+
35+
return collect(Route::getRoutes())
36+
->filter(fn ($route) => in_array('GET', $route->methods()))
37+
->reject(fn ($route) => in_array('auth', $route->gatherMiddleware()))
38+
->reject(fn ($route) => in_array($route->uri(), ['sanctum/csrf-cookie', '_ignition/health-check', 'api/user']))
39+
->reject(fn ($route) => str_contains($route->uri(), 'admin'))
40+
->reject(fn ($route) => in_array($route->uri(), $frontendRoutes))
41+
->reject(fn ($route) => in_array($route->uri(), $rejectRoutes))
42+
->reject(fn ($route) => in_array($route->uri(), $rejectFrontendRoutes))
43+
->reject(fn ($route) => str_contains($route->uri(), '{'))
44+
->reject(fn ($route) => str_contains($route->uri(), 'debug'))
45+
->map(fn ($route) => $route->uri())
46+
->values()
47+
->toArray();
48+
}
49+
50+
function getFrontendRoutes()
51+
{
52+
$frontendRoutes = [
53+
];
54+
55+
$rejectFrontendRoutes = [
56+
'/',
57+
];
58+
59+
return collect(Route::getRoutes())
60+
->filter(fn ($route) => in_array('GET', $route->methods()))
61+
->reject(fn ($route) => in_array($route->uri(), ['sanctum/csrf-cookie', '_ignition/health-check', 'api/user']))
62+
->reject(fn ($route) => str_contains($route->uri(), 'admin'))
63+
->filter(fn ($route) => in_array($route->uri(), $frontendRoutes))
64+
->reject(fn ($route) => in_array($route->uri(), $rejectFrontendRoutes))
65+
->reject(fn ($route) => str_contains($route->uri(), '{'))
66+
->reject(fn ($route) => str_contains($route->uri(), 'create'))
67+
->reject(fn ($route) => str_contains($route->uri(), 'debug'))
68+
->map(fn ($route) => $route->uri())
69+
->values()
70+
->toArray();
71+
}
72+
73+
it('can render all guest routes', function () {
74+
$routes = getGuestRoutes();
75+
76+
foreach ($routes as $url) {
77+
$this->get($url)->assertOk();
78+
}
79+
});
80+
81+
it('can render all frontend routes', function () {
82+
$this->actingAs(User::where('email', 'admin@dev.com')->first());
83+
84+
$routes = getFrontendRoutes();
85+
86+
foreach ($routes as $url) {
87+
$this->get($url)->assertOk();
88+
}
89+
});

tests/Pest.php

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,10 @@
1515
// pest()->extend(Tests\TestCase::class)
1616
// ->in('Feature', 'Unit');
1717

18+
uses(
19+
Tests\TestCase::class
20+
)->in('.');
21+
1822
/*
1923
|--------------------------------------------------------------------------
2024
| Expectations

tests/Unit/Models/UserTest.php

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,8 @@
55
use Illuminate\Support\Facades\Hash;
66
use Spatie\Permission\Models\Permission;
77
use Spatie\Permission\Models\Role;
8-
use Tests\TestCase;
98

10-
uses(TestCase::class, RefreshDatabase::class);
9+
uses(RefreshDatabase::class);
1110

1211
test('user can be created', function () {
1312
$user = User::factory()->create([

0 commit comments

Comments
 (0)