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

View File

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

View File

@@ -220,4 +220,51 @@ class AdminTest extends TestCase
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()
{
@@ -273,7 +273,7 @@ class SubscriptionTest extends TestCase
}
/**
* @test
*
*/
public function it_get_user_invoices_from_admin()
{

View File

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