update to laravel 10

pull/24/head
Mikiyas Tibebu 3 years ago
parent 6f270ecb08
commit e707c40a4e

@ -8,20 +8,15 @@ use Illuminate\Foundation\Console\Kernel as ConsoleKernel;
class Kernel extends ConsoleKernel {
/**
* Define the application's command schedule.
*
* @param \Illuminate\Console\Scheduling\Schedule $schedule
* @return void
*/
protected function schedule(Schedule $schedule) {
protected function schedule(Schedule $schedule): void {
// $schedule->command('inspire')->hourly();
}
/**
* Register the commands for the application.
*
* @return void
*/
protected function commands() {
protected function commands(): void {
$this->load(__DIR__.'/Commands');
require base_path('routes/console.php');

@ -39,10 +39,8 @@ class Handler extends ExceptionHandler {
/**
* Register the exception handling callbacks for the application.
*
* @return void
*/
public function register() {
public function register(): void {
$this->reportable(function (Throwable $e) {
//
});

@ -2,14 +2,17 @@
namespace App\Http\Controllers;
use Illuminate\Contracts\Routing\ResponseFactory;
use Illuminate\Http\Response;
class HydraController extends Controller {
public function hydra() {
public function hydra(): Response {
return response([
'message' => 'Welcome to Hydra, the zero config API boilerplate with roles and abilities for Laravel Sanctum. Please visit https://hasinhayder.github.io/hydra to know more.',
]);
}
public function version() {
public function version(): Response {
return response([
'version' => config('hydra.version'),
]);

@ -4,6 +4,7 @@ namespace App\Http\Controllers;
use App\Models\Role;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
class RoleController extends Controller {
/**
@ -17,11 +18,8 @@ class RoleController extends Controller {
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request) {
public function store(Request $request): Role|Response {
$data = $request->validate([
'name' => 'required',
'slug' => 'required',
@ -43,22 +41,15 @@ class RoleController extends Controller {
/**
* Display the specified resource.
*
* @param \App\Models\Role $role
* @return \App\Models\Role $role
*/
public function show(Role $role) {
public function show(Role $role): Role {
return $role;
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param \App\Models\Role $role
* @return \Illuminate\Contracts\Foundation\Application|\Illuminate\Contracts\Routing\ResponseFactory|\Illuminate\Http\Response|Role
*/
public function update(Request $request, Role $role = null) {
public function update(Request $request, Role $role = null): Role|Response {
if (! $role) {
return response(['error' => 1, 'message' => 'role doesn\'t exist'], 404);
}
@ -79,11 +70,8 @@ class RoleController extends Controller {
/**
* Remove the specified resource from storage.
*
* @param \App\Models\Role $role
* @return \Illuminate\Http\Response
*/
public function destroy(Role $role) {
public function destroy(Role $role): Response {
if ($role->slug != 'admin' && $role->slug != 'super-admin') {
//don't allow changing the admin slug, because it will make the routes inaccessbile due to faile ability check
$role->delete();

@ -5,6 +5,7 @@ namespace App\Http\Controllers;
use App\Models\Role;
use App\Models\User;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
use Illuminate\Support\Facades\Hash;
use Laravel\Sanctum\Exceptions\MissingAbilityException;
@ -20,11 +21,8 @@ class UserController extends Controller {
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request) {
public function store(Request $request): User|Response {
$creds = $request->validate([
'email' => 'required|email',
'password' => 'required',
@ -50,11 +48,8 @@ class UserController extends Controller {
/**
* Authenticate an user and dispatch token.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function login(Request $request) {
public function login(Request $request): Response {
$creds = $request->validate([
'email' => 'required|email',
'password' => 'required',
@ -78,24 +73,17 @@ class UserController extends Controller {
/**
* Display the specified resource.
*
* @param \App\Models\User $user
* @return \App\Models\User $user
*/
public function show(User $user) {
public function show(User $user): User {
return $user;
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param \App\Models\User $user
* @return User
*
* @throws MissingAbilityException
*/
public function update(Request $request, User $user) {
public function update(Request $request, User $user): User {
$user->name = $request->name ?? $user->name;
$user->email = $request->email ?? $user->email;
$user->password = $request->password ? Hash::make($request->password) : $user->password;
@ -117,11 +105,8 @@ class UserController extends Controller {
/**
* Remove the specified resource from storage.
*
* @param \App\Models\User $user
* @return \Illuminate\Http\Response
*/
public function destroy(User $user) {
public function destroy(User $user): Response {
$adminRole = Role::where('slug', 'admin')->first();
$userRoles = $user->roles;
@ -139,10 +124,7 @@ class UserController extends Controller {
}
/**
* Return Auth user
*
* @param Request $request
* @return mixed
* Return Auth user.
*/
public function me(Request $request) {
return $request->user();

@ -5,26 +5,20 @@ namespace App\Http\Controllers;
use App\Models\Role;
use App\Models\User;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
class UserRoleController extends Controller {
/**
* Display a listing of the resource.
*
* @param \App\Models\User $user
* @return \App\Models\User $user
*/
public function index(User $user) {
public function index(User $user): User {
return $user->load('roles');
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param \App\Models\User $user
* @return \App\Models\User $user
*/
public function store(Request $request, User $user) {
public function store(Request $request, User $user): User|Response {
$data = $request->validate([
'role_id' => 'required|integer',
]);
@ -38,12 +32,8 @@ class UserRoleController extends Controller {
/**
* Remove the specified resource from storage.
*
* @param \App\Models\User $user
* @param \App\Models\Role $role
* @return \App\Models\User $user
*/
public function destroy(User $user, Role $role) {
public function destroy(User $user, Role $role): User {
$user->roles()->detach($role);
return $user->load('roles');

@ -7,13 +7,8 @@ use Illuminate\Auth\Middleware\Authenticate as Middleware;
class Authenticate extends Middleware {
/**
* Get the path the user should be redirected to when they are not authenticated.
*
* @param \Illuminate\Http\Request $request
* @return string|null
*/
protected function redirectTo($request) {
if (! $request->expectsJson()) {
return route('login');
}
protected function redirectTo($request): ?string {
return $request->expectsJson() ? null : route('login');
}
}

@ -4,19 +4,16 @@ namespace App\Http\Middleware;
use App\Providers\RouteServiceProvider;
use Closure;
use Illuminate\Http\RedirectResponse;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
use Illuminate\Support\Facades\Auth;
class RedirectIfAuthenticated {
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure(\Illuminate\Http\Request): (\Illuminate\Http\Response|\Illuminate\Http\RedirectResponse) $next
* @param string|null ...$guards
* @return \Illuminate\Http\Response|\Illuminate\Http\RedirectResponse
*/
public function handle(Request $request, Closure $next, ...$guards) {
public function handle(Request $request, Closure $next, ...$guards): Response|RedirectResponse {
$guards = empty($guards) ? [null] : $guards;
foreach ($guards as $guard) {

@ -10,7 +10,7 @@ class TrustHosts extends Middleware {
*
* @return array<int, string|null>
*/
public function hosts() {
public function hosts(): array {
return [
$this->allSubdomainsOfApplicationUrl(),
];

@ -4,6 +4,7 @@ namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsToMany;
class Role extends Model {
use HasFactory;
@ -18,7 +19,7 @@ class Role extends Model {
'updated_at',
];
public function users() {
public function users(): BelongsToMany {
return $this->belongsToMany(User::class, 'user_roles');
}
}

@ -3,6 +3,7 @@
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Relations\BelongsToMany;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable;
use Laravel\Sanctum\HasApiTokens;
@ -43,7 +44,7 @@ class User extends Authenticatable {
'email_verified_at' => 'datetime',
];
public function roles() {
public function roles(): BelongsToMany {
return $this->belongsToMany(Role::class, 'user_roles');
}
}

@ -7,19 +7,15 @@ use Illuminate\Support\ServiceProvider;
class AppServiceProvider extends ServiceProvider {
/**
* Register any application services.
*
* @return void
*/
public function register() {
public function register(): void {
//
}
/**
* Bootstrap any application services.
*
* @return void
*/
public function boot() {
public function boot(): void {
//
}
}

@ -16,12 +16,8 @@ class AuthServiceProvider extends ServiceProvider {
/**
* Register any authentication / authorization services.
*
* @return void
*/
public function boot() {
$this->registerPolicies();
public function boot(): void {
//
}
}

@ -8,10 +8,8 @@ use Illuminate\Support\ServiceProvider;
class BroadcastServiceProvider extends ServiceProvider {
/**
* Bootstrap any application services.
*
* @return void
*/
public function boot() {
public function boot(): void {
Broadcast::routes();
require base_path('routes/channels.php');

@ -21,19 +21,15 @@ class EventServiceProvider extends ServiceProvider {
/**
* Register any events for your application.
*
* @return void
*/
public function boot() {
public function boot(): void {
//
}
/**
* Determine if events and listeners should be automatically discovered.
*
* @return bool
*/
public function shouldDiscoverEvents() {
public function shouldDiscoverEvents(): bool {
return false;
}
}

@ -20,10 +20,8 @@ class RouteServiceProvider extends ServiceProvider {
/**
* Define your route model bindings, pattern filters, and other route configuration.
*
* @return void
*/
public function boot() {
public function boot(): void {
$this->configureRateLimiting();
$this->routes(function () {
@ -38,10 +36,8 @@ class RouteServiceProvider extends ServiceProvider {
/**
* Configure the rate limiters for the application.
*
* @return void
*/
protected function configureRateLimiting() {
protected function configureRateLimiting(): void {
RateLimiter::for('api', function (Request $request) {
return Limit::perMinute(60)->by($request->user()?->id ?: $request->ip());
});

@ -10,18 +10,18 @@
"require": {
"php": "^8.0.2",
"guzzlehttp/guzzle": "^7.4.4",
"laravel/framework": "^9.23",
"laravel/sanctum": "^2.15.1",
"laravel/tinker": "^2.7"
"laravel/framework": "^10.0",
"laravel/sanctum": "^3.2",
"laravel/tinker": "^2.8"
},
"require-dev": {
"fakerphp/faker": "^1.9.1",
"laravel/pint": "^1.1.0",
"laravel/sail": "^1.15",
"laravel/sail": "^1.18",
"mockery/mockery": "^1.4.4",
"nunomaduro/collision": "^6.2",
"phpunit/phpunit": "^9.5.10",
"spatie/laravel-ignition": "^1.0"
"nunomaduro/collision": "^7.0",
"phpunit/phpunit": "^10.0",
"spatie/laravel-ignition": "^2.0"
},
"autoload": {
"psr-4": {
@ -60,6 +60,6 @@
"preferred-install": "dist",
"sort-packages": true
},
"minimum-stability": "dev",
"minimum-stability": "stable",
"prefer-stable": true
}

@ -14,7 +14,7 @@ class UserFactory extends Factory {
*
* @return array<string, mixed>
*/
public function definition() {
public function definition(): array {
return [
'name' => $this->faker->name(),
'email' => $this->faker->unique()->safeEmail(),
@ -29,7 +29,7 @@ class UserFactory extends Factory {
*
* @return static
*/
public function unverified() {
public function unverified(): static {
return $this->state(function (array $attributes) {
return [
'email_verified_at' => null,

@ -7,10 +7,8 @@ use Illuminate\Support\Facades\Schema;
return new class extends Migration {
/**
* Run the migrations.
*
* @return void
*/
public function up() {
public function up(): void {
Schema::create('users', function (Blueprint $table) {
$table->id();
$table->string('name');
@ -24,10 +22,8 @@ return new class extends Migration {
/**
* Reverse the migrations.
*
* @return void
*/
public function down() {
public function down(): void {
Schema::dropIfExists('users');
}
};

@ -7,10 +7,8 @@ use Illuminate\Support\Facades\Schema;
return new class extends Migration {
/**
* Run the migrations.
*
* @return void
*/
public function up() {
public function up(): void {
Schema::create('password_resets', function (Blueprint $table) {
$table->string('email')->index();
$table->string('token');
@ -20,10 +18,8 @@ return new class extends Migration {
/**
* Reverse the migrations.
*
* @return void
*/
public function down() {
public function down(): void {
Schema::dropIfExists('password_resets');
}
};

@ -7,10 +7,8 @@ use Illuminate\Support\Facades\Schema;
return new class extends Migration {
/**
* Run the migrations.
*
* @return void
*/
public function up() {
public function up(): void {
Schema::create('failed_jobs', function (Blueprint $table) {
$table->id();
$table->string('uuid')->unique();
@ -24,10 +22,8 @@ return new class extends Migration {
/**
* Reverse the migrations.
*
* @return void
*/
public function down() {
public function down(): void {
Schema::dropIfExists('failed_jobs');
}
};

@ -7,10 +7,8 @@ use Illuminate\Support\Facades\Schema;
return new class extends Migration {
/**
* Run the migrations.
*
* @return void
*/
public function up() {
public function up(): void {
Schema::create('personal_access_tokens', function (Blueprint $table) {
$table->id();
$table->morphs('tokenable');
@ -18,16 +16,15 @@ return new class extends Migration {
$table->string('token', 64)->unique();
$table->text('abilities')->nullable();
$table->timestamp('last_used_at')->nullable();
$table->timestamp('expires_at')->nullable();
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down() {
public function down(): void {
Schema::dropIfExists('personal_access_tokens');
}
};

@ -7,10 +7,8 @@ use Illuminate\Support\Facades\Schema;
return new class extends Migration {
/**
* Run the migrations.
*
* @return void
*/
public function up() {
public function up(): void {
Schema::create('roles', function (Blueprint $table) {
$table->id();
$table->string('name');
@ -21,10 +19,8 @@ return new class extends Migration {
/**
* Reverse the migrations.
*
* @return void
*/
public function down() {
public function down(): void {
Schema::dropIfExists('roles');
}
};

@ -7,10 +7,8 @@ use Illuminate\Support\Facades\Schema;
return new class extends Migration {
/**
* Run the migrations.
*
* @return void
*/
public function up() {
public function up(): void {
Schema::create('user_roles', function (Blueprint $table) {
$table->id();
$table->foreignId('user_id')->constrained()->cascadeOnDelete();
@ -22,10 +20,8 @@ return new class extends Migration {
/**
* Reverse the migrations.
*
* @return void
*/
public function down() {
public function down(): void {
Schema::dropIfExists('user_roles');
}
};

@ -7,10 +7,8 @@ use Illuminate\Database\Seeder;
class DatabaseSeeder extends Seeder {
/**
* Seed the application's database.
*
* @return void
*/
public function run() {
public function run(): void {
// \App\Models\User::factory(10)->create();
// \App\Models\User::factory()->create([

@ -10,10 +10,8 @@ use Illuminate\Support\Facades\Schema;
class RoleSeeder extends Seeder {
/**
* Run the database seeds.
*
* @return void
*/
public function run() {
public function run(): void {
Schema::disableForeignKeyConstraints();
DB::table('roles')->truncate();
Schema::enableForeignKeyConstraints();

@ -12,10 +12,8 @@ use Illuminate\Support\Facades\Schema;
class UsersSeeder extends Seeder {
/**
* Run the database seeds.
*
* @return void
*/
public function run() {
public function run(): void {
Schema::disableForeignKeyConstraints();
DB::table('users')->truncate();
Schema::enableForeignKeyConstraints();

@ -12,7 +12,7 @@
<directory suffix="Test.php">./tests/Feature</directory>
</testsuite>
</testsuites>
<coverage processUncoveredFiles="true">
<coverage>
<include>
<directory suffix=".php">./app</directory>
</include>

@ -1,13 +1,12 @@
window._ = require('lodash');
/**
* We'll load the axios HTTP library which allows us to easily issue requests
* to our Laravel back-end. This library automatically handles sending the
* CSRF token as a header based on the value of the "XSRF" token cookie.
*/
window.axios = require('axios');
// window.axios.defaults.withCredentials = true;
import axios from 'axios';
window.axios = axios;
window.axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';
/**
@ -18,11 +17,16 @@ window.axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';
// import Echo from 'laravel-echo';
// window.Pusher = require('pusher-js');
// import Pusher from 'pusher-js';
// window.Pusher = Pusher;
// window.Echo = new Echo({
// broadcaster: 'pusher',
// key: process.env.MIX_PUSHER_APP_KEY,
// cluster: process.env.MIX_PUSHER_APP_CLUSTER,
// forceTLS: true
// key: import.meta.env.VITE_PUSHER_APP_KEY,
// cluster: import.meta.env.VITE_PUSHER_APP_CLUSTER ?? 'mt1',
// wsHost: import.meta.env.VITE_PUSHER_HOST ? import.meta.env.VITE_PUSHER_HOST : `ws-${import.meta.env.VITE_PUSHER_APP_CLUSTER}.pusher.com`,
// wsPort: import.meta.env.VITE_PUSHER_PORT ?? 80,
// wssPort: import.meta.env.VITE_PUSHER_PORT ?? 443,
// forceTLS: (import.meta.env.VITE_PUSHER_SCHEME ?? 'https') === 'https',
// enabledTransports: ['ws', 'wss'],
// });

File diff suppressed because one or more lines are too long

@ -3,14 +3,13 @@
namespace Tests;
use Illuminate\Contracts\Console\Kernel;
use Illuminate\Foundation\Application;
trait CreatesApplication {
/**
* Creates the application.
*
* @return \Illuminate\Foundation\Application
*/
public function createApplication() {
public function createApplication(): Application {
$app = require __DIR__.'/../bootstrap/app.php';
$app->make(Kernel::class)->bootstrap();

@ -8,10 +8,8 @@ use Tests\TestCase;
class AdminLoginTest extends TestCase {
/**
* A basic feature test example.
*
* @return void
*/
public function test_admin_login() {
public function test_admin_login(): void {
$response = $this->postJson('/api/login', [
'email' => 'admin@hydra.project',
'password' => 'hydra',
@ -24,7 +22,7 @@ class AdminLoginTest extends TestCase {
);
}
public function test_admin_login_fail() {
public function test_admin_login_fail(): void {
$response = $this->postJson('/api/login', [
'email' => 'admin@hydra.project',
'password' => 'hydrax',

@ -7,10 +7,8 @@ use Tests\TestCase;
class HelloHydraTest extends TestCase {
/**
* A basic feature test example.
*
* @return void
*/
public function test_hello_hydra() {
public function test_hello_hydra(): void {
$response = $this->get('/api/hydra');
$response
@ -20,7 +18,7 @@ class HelloHydraTest extends TestCase {
]);
}
public function test_hydra_version() {
public function test_hydra_version(): void {
$response = $this->get('/api/hydra/version');
$response

@ -9,10 +9,8 @@ use Tests\TestCase;
class RoleTest extends TestCase {
/**
* A basic feature test example.
*
* @return void
*/
public function test_list_roles() {
public function test_list_roles(): void {
$response = $this->postJson('/api/login', [
'email' => 'admin@hydra.project',
'password' => 'hydra',
@ -37,7 +35,7 @@ class RoleTest extends TestCase {
);
}
public function test_update_role_name_as_admin() {
public function test_update_role_name_as_admin(): void {
$response = $this->postJson('/api/login', [
'email' => 'admin@hydra.project',
'password' => 'hydra',
@ -60,7 +58,7 @@ class RoleTest extends TestCase {
);
}
public function test_update_role_slug_as_admin() {
public function test_update_role_slug_as_admin(): void {
$response = $this->postJson('/api/login', [
'email' => 'admin@hydra.project',
'password' => 'hydra',
@ -83,7 +81,7 @@ class RoleTest extends TestCase {
);
}
public function test_update_role_namd_and_slug_as_admin() {
public function test_update_role_namd_and_slug_as_admin(): void {
$response = $this->postJson('/api/login', [
'email' => 'admin@hydra.project',
'password' => 'hydra',
@ -108,7 +106,7 @@ class RoleTest extends TestCase {
);
}
public function test_update_admin_slug_as_admin_should_fail() {
public function test_update_admin_slug_as_admin_should_fail(): void {
$response = $this->postJson('/api/login', [
'email' => 'admin@hydra.project',
'password' => 'hydra',
@ -131,7 +129,7 @@ class RoleTest extends TestCase {
);
}
public function test_create_new_role_as_admin() {
public function test_create_new_role_as_admin(): void {
$response = $this->postJson('/api/login', [
'email' => 'admin@hydra.project',
'password' => 'hydra',
@ -156,7 +154,7 @@ class RoleTest extends TestCase {
);
}
public function test_duplicate_role_will_not_be_created() {
public function test_duplicate_role_will_not_be_created(): void {
$response = $this->postJson('/api/login', [
'email' => 'admin@hydra.project',
'password' => 'hydra',
@ -179,7 +177,7 @@ class RoleTest extends TestCase {
);
}
public function test_delete_role_as_admin() {
public function test_delete_role_as_admin(): void {
$response = $this->postJson('/api/login', [
'email' => 'admin@hydra.project',
'password' => 'hydra',
@ -201,7 +199,7 @@ class RoleTest extends TestCase {
);
}
public function test_delete_admin_role_should_fail() {
public function test_delete_admin_role_should_fail(): void {
$response = $this->postJson('/api/login', [
'email' => 'admin@hydra.project',
'password' => 'hydra',

@ -8,7 +8,7 @@ use Illuminate\Testing\Fluent\AssertableJson;
use Tests\TestCase;
class UserRoleTest extends TestCase {
public function test_user_role_is_present() {
public function test_user_role_is_present(): void {
$response = $this->postJson('/api/login', [
'email' => 'admin@hydra.project',
'password' => 'hydra',
@ -33,7 +33,7 @@ class UserRoleTest extends TestCase {
);
}
public function test_assign_role_to_a_user() {
public function test_assign_role_to_a_user(): void {
$newUser = User::create([
'name' => 'Test User',
'password' => Hash::make('abcd'),
@ -66,7 +66,7 @@ class UserRoleTest extends TestCase {
$newUser->delete();
}
public function test_assign_role_multiple_times_to_a_user_should_fail() {
public function test_assign_role_multiple_times_to_a_user_should_fail(): void {
$newUser = User::create([
'name' => 'Test User',
'password' => Hash::make('abcd'),
@ -99,7 +99,7 @@ class UserRoleTest extends TestCase {
$newUser->delete();
}
public function test_assign_multiple_roles_to_a_user() {
public function test_assign_multiple_roles_to_a_user(): void {
$newUser = User::create([
'name' => 'Test User',
'password' => Hash::make('abcd'),
@ -132,7 +132,7 @@ class UserRoleTest extends TestCase {
$newUser->delete();
}
public function test_delete_role_from_a_user() {
public function test_delete_role_from_a_user(): void {
$newUser = User::create([
'name' => 'Test User',
'password' => Hash::make('abcd'),
@ -168,7 +168,7 @@ class UserRoleTest extends TestCase {
$newUser->delete();
}
public function test_delete_all_roles_from_a_user() {
public function test_delete_all_roles_from_a_user(): void {
$newUser = User::create([
'name' => 'Test User',
'password' => Hash::make('abcd'),

@ -11,14 +11,12 @@ use Tests\TestCase;
class UserTest extends TestCase {
/**
* A basic feature test example.
*
* @return void
*/
private $token;
private $user_id;
public function test_new_user_registration() {
public function test_new_user_registration(): void {
$response = $this->postJson('/api/users', [
'name' => 'Test User',
'email' => 'test@test.com',
@ -33,7 +31,7 @@ class UserTest extends TestCase {
);
}
public function test_existing_email_registration_fail() {
public function test_existing_email_registration_fail(): void {
$response = $this->postJson('/api/users', [
'name' => 'Test User',
'email' => 'test@test.com',
@ -47,7 +45,7 @@ class UserTest extends TestCase {
);
}
public function test_new_user_login() {
public function test_new_user_login(): void {
$response = $this->postJson('/api/login', [
'email' => 'test@test.com',
'password' => 'test',
@ -65,7 +63,7 @@ class UserTest extends TestCase {
);
}
public function test_new_user_failed_login() {
public function test_new_user_failed_login(): void {
$response = $this->postJson('/api/login', [
'email' => 'test@test.com',
'password' => 'testX',
@ -78,7 +76,7 @@ class UserTest extends TestCase {
);
}
public function test_new_user_name_update_with_user_token() {
public function test_new_user_name_update_with_user_token(): void {
$response = $this->postJson('/api/login', [
'email' => 'test@test.com',
'password' => 'test',
@ -100,7 +98,7 @@ class UserTest extends TestCase {
);
}
public function test_new_user_name_update_with_admin_token() {
public function test_new_user_name_update_with_admin_token(): void {
$response = $this->postJson('/api/login', [
'email' => 'admin@hydra.project',
'password' => 'hydra',
@ -122,7 +120,7 @@ class UserTest extends TestCase {
);
}
public function test_new_user_destroy_as_user_should_fail() {
public function test_new_user_destroy_as_user_should_fail(): void {
$response = $this->postJson('/api/login', [
'email' => 'test@test.com',
'password' => 'test',
@ -144,7 +142,7 @@ class UserTest extends TestCase {
);
}
public function test_new_user_destroy_as_admin() {
public function test_new_user_destroy_as_admin(): void {
$response = $this->postJson('/api/login', [
'email' => 'admin@hydra.project',
'password' => 'hydra',
@ -166,7 +164,7 @@ class UserTest extends TestCase {
);
}
public function test_delete_admin_user_if_multiple_admins_are_present() {
public function test_delete_admin_user_if_multiple_admins_are_present(): void {
$newAdminUser = User::create([
'name' => 'Test Admin',
'password' => Hash::make('abcd'),

@ -7,10 +7,8 @@ use PHPUnit\Framework\TestCase;
class ExampleTest extends TestCase {
/**
* A basic test example.
*
* @return void
*/
public function test_that_true_is_true() {
public function test_that_true_is_true(): void {
$this->assertTrue(true);
}
}

Loading…
Cancel
Save