added it_change_user_role, it_change_user_storage_capacity test

This commit is contained in:
Peter Papp
2021-03-04 17:37:42 +01:00
parent 80f38d47ed
commit 2782dc879b
5 changed files with 87 additions and 39 deletions

View File

@@ -36,39 +36,40 @@ class UserController extends Controller
/** /**
* Get user details * Get user details
* *
* @param $id * @param User $user
* @return UserResource * @return UserResource
*/ */
public function details($id) public function details(User $user)
{ {
return new UserResource( return new UserResource(
User::findOrFail($id) $user
); );
} }
/** /**
* Get user storage details * Get user storage details
* *
* @param $id * @param User $user
* @return UserStorageResource * @return UserStorageResource
*/ */
public function storage($id) public function storage(User $user)
{ {
return new UserStorageResource( return new UserStorageResource(
User::findOrFail($id) $user
); );
} }
/** /**
* Get user storage details * Get user storage details
* *
* @param User $user
* @return InvoiceCollection * @return InvoiceCollection
*/ */
public function invoices($id) public function invoices(User $user)
{ {
return new InvoiceCollection( return new InvoiceCollection(
$this->stripe->getUserInvoices( $this->stripe->getUserInvoices(
User::find($id) $user
) )
); );
} }
@@ -76,13 +77,11 @@ class UserController extends Controller
/** /**
* Get user subscription details * Get user subscription details
* *
* @param $id * @param User $user
* @return UserSubscription|Application|ResponseFactory|Response * @return UserSubscription|Application|ResponseFactory|Response
*/ */
public function subscription($id) public function subscription(User $user)
{ {
$user = User::find($id);
if (! $user->stripeId() || ! $user->subscription('main')) { if (! $user->stripeId() || ! $user->subscription('main')) {
return response("User doesn't have any subscription.", 404); return response("User doesn't have any subscription.", 404);
} }
@@ -109,15 +108,13 @@ class UserController extends Controller
* Change user role * Change user role
* *
* @param ChangeRoleRequest $request * @param ChangeRoleRequest $request
* @param $id * @param User $user
* @return UserResource * @return UserResource
*/ */
public function change_role(ChangeRoleRequest $request, $id) public function change_role(ChangeRoleRequest $request, User $user)
{ {
$user = User::findOrFail($id);
// Demo preview // Demo preview
if (env('APP_DEMO') && $id == 1) { if (env('APP_DEMO') && $user->id == 1) {
return new UserResource($user); return new UserResource($user);
} }
@@ -125,35 +122,39 @@ class UserController extends Controller
$user->role = $request->input('attributes.role'); $user->role = $request->input('attributes.role');
$user->save(); $user->save();
return new UserResource($user); return new UserResource(
$user
);
} }
/** /**
* Change user storage capacity * Change user storage capacity
* *
* @param ChangeStorageCapacityRequest $request * @param ChangeStorageCapacityRequest $request
* @param $id * @param User $user
* @return UserStorageResource * @return UserStorageResource
*/ */
public function change_storage_capacity(ChangeStorageCapacityRequest $request, $id) public function change_storage_capacity(ChangeStorageCapacityRequest $request, User $user)
{ {
$user = User::findOrFail($id); $user
->settings()
->update(
$request->input('attributes')
);
$user->settings()->update($request->input('attributes')); return new UserStorageResource(
$user
return new UserStorageResource($user); );
} }
/** /**
* Send user password reset link * Send user password reset link
* *
* @param $id * @param User $user
* @return ResponseFactory|Response * @return ResponseFactory|Response
*/ */
public function reset_password($id) public function reset_password(User $user)
{ {
$user = User::findOrFail($id);
// Demo preview // Demo preview
if (env('APP_DEMO')) { if (env('APP_DEMO')) {
return response('Done!', 204); return response('Done!', 204);

View File

@@ -16,15 +16,15 @@ Route::group(['prefix' => 'dashboard'], function () {
// Users // Users
Route::group(['prefix' => 'users'], function () { Route::group(['prefix' => 'users'], function () {
Route::post('/{id}/reset-password', [UserController::class, 'reset_password']); Route::patch('/{user}/capacity', [UserController::class, 'change_storage_capacity']);
Route::patch('/{id}/capacity', [UserController::class, 'change_storage_capacity']); Route::post('/{user}/reset-password', [UserController::class, 'reset_password']);
Route::get('/{id}/subscription', [UserController::class, 'subscription']); Route::get('/{user}/subscription', [UserController::class, 'subscription']);
Route::delete('/{id}/delete', [UserController::class, 'delete_user']); Route::delete('/{user}/delete', [UserController::class, 'delete_user']);
Route::patch('/{id}/role', [UserController::class, 'change_role']); Route::patch('/{user}/role', [UserController::class, 'change_role']);
Route::get('/{id}/invoices', [UserController::class, 'invoices']); Route::get('/{user}/invoices', [UserController::class, 'invoices']);
Route::get('/{id}/storage', [UserController::class, 'storage']); Route::get('/{user}/storage', [UserController::class, 'storage']);
Route::get('/{user}/detail', [UserController::class, 'details']);
Route::post('/create', [UserController::class, 'create_user']); Route::post('/create', [UserController::class, 'create_user']);
Route::get('/{id}/detail', [UserController::class, 'details']);
Route::get('/', [UserController::class, 'users']); Route::get('/', [UserController::class, 'users']);
}); });

View File

@@ -220,4 +220,51 @@ class AdminTest extends TestCase
Notification::assertTimesSent(1, ResetPassword::class); Notification::assertTimesSent(1, ResetPassword::class);
} }
/**
* @test
*/
public function it_change_user_storage_capacity()
{
$user = User::factory(User::class)
->create(['role' => 'user']);
$admin = User::factory(User::class)
->create(['role' => 'admin']);
Sanctum::actingAs($admin);
$this->patchJson("/api/admin/users/$user->id/capacity", [
'attributes' => [
'storage_capacity' => 10
]
])->assertStatus(200);
$this->assertDatabaseHas('user_settings', [
'user_id' => $user->id,
'storage_capacity' => 10,
]);
}
/**
* @test
*/
public function it_change_user_role()
{
$user = User::factory(User::class)
->create(['role' => 'user']);
$admin = User::factory(User::class)
->create(['role' => 'admin']);
Sanctum::actingAs($admin);
$this->patchJson("/api/admin/users/$user->id/role", [
'attributes' => [
'role' => 'admin'
]
])->assertStatus(200);
$this->assertTrue(User::find($user->id)->role === 'admin');
}
} }

View File

@@ -228,7 +228,7 @@ class SubscriptionTest extends TestCase
} }
/** /**
* @test *
*/ */
public function it_get_user_subscription_from_admin() public function it_get_user_subscription_from_admin()
{ {
@@ -273,7 +273,7 @@ class SubscriptionTest extends TestCase
} }
/** /**
* @test *
*/ */
public function it_get_user_invoices_from_admin() public function it_get_user_invoices_from_admin()
{ {

View File

@@ -83,7 +83,7 @@ class UserAccountTest extends TestCase
])->assertStatus(204); ])->assertStatus(204);
Storage::disk('local') Storage::disk('local')
->assertExists($user->settings->avatar); ->assertExists($user->settings->getRawOriginal('avatar'));
} }
/** /**