test refactoring

This commit is contained in:
Čarodej
2022-01-13 11:41:40 +01:00
parent 6cf7e5d26d
commit 66de377657
14 changed files with 82 additions and 50 deletions

View File

@@ -9,13 +9,13 @@ use Domain\Admin\Controllers\Users\DeleteUserController;
use Domain\Settings\Controllers\GetSettingsValueController;
use Domain\Admin\Controllers\Dashboard\GetNewbiesController;
use Domain\Admin\Controllers\Users\ChangeUserRoleController;
use Domain\Settings\Controllers\StoreSocialServiceCredentialsController;
use Domain\Settings\Controllers\UpdateSettingValueController;
use Domain\Admin\Controllers\Users\ResetUserPasswordController;
use Domain\Admin\Controllers\Dashboard\GetDashboardDataController;
use Domain\Localization\Controllers\UpdateLanguageStringController;
use Domain\Admin\Controllers\Users\ShowUserStorageCapacityController;
use Domain\Admin\Controllers\Users\ChangeUserStorageCapacityController;
use Domain\Settings\Controllers\StoreSocialServiceCredentialsController;
use Domain\Settings\Controllers\StorePaymentServiceCredentialsController;
// Dashboard

View File

@@ -45,6 +45,9 @@ class GenerateDemoSubscriptionContentCommand extends Command
// Create plans and subscriptions for fixed billing
if ($this->argument('type') === 'fixed') {
// TODO: check for credentials
$this->info('Setting up new fixed plans demo data...');
$this->generateFixedPlans();

View File

@@ -39,7 +39,7 @@ class AutoSubscribeForMeteredBillingAction
} else {
// Create balance with 0 amount
$user->balance()->create([
'amount' => 0,
'amount' => 0,
'currency' => $plan->currency,
]);
}

View File

@@ -1,8 +1,8 @@
<?php
namespace App\Users\Actions;
use App\Users\DTO\CreateUserData;
use App\Users\Models\User;
use App\Users\DTO\CreateUserData;
use App\Http\Controllers\Controller;
use Illuminate\Auth\Events\Registered;
use Illuminate\Contracts\Auth\StatefulGuard;

View File

@@ -10,7 +10,8 @@ class RegisterUserController extends Controller
{
public function __construct(
public CreateNewUserAction $createNewUser,
) {}
) {
}
public function __invoke(RegisterUserRequest $request)
{

View File

@@ -1,9 +1,7 @@
<?php
namespace App\Users\Resources;
use ByteUnits\Metric;
use Carbon\Carbon;
use Illuminate\Support\Facades\DB;
use Illuminate\Http\Resources\Json\JsonResource;
@@ -22,18 +20,18 @@ class UserStorageResource extends JsonResource
$totalCapacity = match (get_settings('subscription_type')) {
'metered' => $this->usedCapacity / 1000000000,
'fixed' => $this->limitations->max_storage_amount,
default => $this->limitations->max_storage_amount,
'fixed' => $this->limitations->max_storage_amount,
default => $this->limitations->max_storage_amount,
};
return [
'data' => [
'id' => (string)$this->id,
'id' => (string) $this->id,
'type' => 'storage',
'attributes' => [
'used' => Metric::bytes($this->usedCapacity)->format(),
'capacity' => format_gigabytes($totalCapacity),
'percentage' => (float)get_storage_percentage($this->usedCapacity, $totalCapacity),
'percentage' => (float) get_storage_percentage($this->usedCapacity, $totalCapacity),
],
'meta' => [
'traffic' => [
@@ -46,23 +44,23 @@ class UserStorageResource extends JsonResource
],
'images' => [
'used' => Metric::bytes($images)->format(),
'percentage' => (float)get_storage_percentage($images, $totalCapacity),
'percentage' => (float) get_storage_percentage($images, $totalCapacity),
],
'audios' => [
'used' => Metric::bytes($audios)->format(),
'percentage' => (float)get_storage_percentage($audios, $totalCapacity),
'percentage' => (float) get_storage_percentage($audios, $totalCapacity),
],
'videos' => [
'used' => Metric::bytes($videos)->format(),
'percentage' => (float)get_storage_percentage($videos, $totalCapacity),
'percentage' => (float) get_storage_percentage($videos, $totalCapacity),
],
'documents' => [
'used' => Metric::bytes($documents)->format(),
'percentage' => (float)get_storage_percentage($documents, $totalCapacity),
'percentage' => (float) get_storage_percentage($documents, $totalCapacity),
],
'others' => [
'used' => Metric::bytes($others)->format(),
'percentage' => (float)get_storage_percentage($others, $totalCapacity),
'percentage' => (float) get_storage_percentage($others, $totalCapacity),
],
],
],
@@ -134,12 +132,12 @@ class UserStorageResource extends JsonResource
->orderBy('created_at')
->get();
$upload = $trafficRecords->map(fn($record) => [
$upload = $trafficRecords->map(fn ($record) => [
'created_at' => format_date($record->created_at),
'amount' => $uploadMax !== 0 ? round(($record->upload / $uploadMax) * 100, 2) : 0,
]);
$download = $trafficRecords->map(fn($record) => [
$download = $trafficRecords->map(fn ($record) => [
'created_at' => format_date($record->created_at),
'amount' => $downloadMax !== 0 ? round(($record->download / $downloadMax) * 100, 2) : 0,
]);

View File

@@ -1,14 +1,13 @@
<?php
namespace Domain\Admin\Controllers\Dashboard;
use ByteUnits\Metric;
use App\Users\Models\User;
use Illuminate\Contracts\Foundation\Application;
use Illuminate\Contracts\Routing\ResponseFactory;
use Illuminate\Http\Response;
use Illuminate\Support\Facades\DB;
use App\Http\Controllers\Controller;
use Illuminate\Contracts\Foundation\Application;
use Illuminate\Contracts\Routing\ResponseFactory;
use VueFileManager\Subscription\Domain\Subscriptions\Models\Subscription;
class GetDashboardDataController extends Controller
@@ -61,16 +60,17 @@ class GetDashboardDataController extends Controller
->select(
DB::raw('DATE(created_at) as created_at'),
DB::raw('sum(download) as download'),
DB::raw('sum(upload) as upload'))
DB::raw('sum(upload) as upload')
)
->groupBy('created_at')
->get();
$upload = $trafficRecords->map(fn($record) => [
$upload = $trafficRecords->map(fn ($record) => [
'created_at' => format_date($record->created_at, '%d. %B. %Y'),
'amount' => intval($trafficRecords->max('upload')) !== 0 ? round(($record->upload / $trafficRecords->max('upload')) * 100, 2) : 0,
]);
$download = $trafficRecords->map(fn($record) => [
$download = $trafficRecords->map(fn ($record) => [
'created_at' => format_date($record->created_at, '%d. %B. %Y'),
'amount' => intval($trafficRecords->max('download')) !== 0 ? round(($record->download / $trafficRecords->max('download')) * 100, 2) : 0,
]);

View File

@@ -27,11 +27,11 @@ class StoreSocialServiceCredentialsController
if (! app()->runningUnitTests()) {
$credentials = [
'facebook' => [
'FACEBOOK_CLIENT_ID' => $request->input('client_id'),
'FACEBOOK_CLIENT_ID' => $request->input('client_id'),
'FACEBOOK_CLIENT_SECRET' => $request->input('client_secret'),
],
'google' => [
'GOOGLE_CLIENT_ID' => $request->input('client_id'),
'GOOGLE_CLIENT_ID' => $request->input('client_id'),
'GOOGLE_CLIENT_SECRET' => $request->input('client_secret'),
],
'github' => [

View File

@@ -1,5 +1,4 @@
<?php
namespace Domain\Settings\Requests;
use Illuminate\Foundation\Http\FormRequest;

View File

@@ -139,9 +139,14 @@ class UserAccountTest extends TestCase
'id' => (string) $user->id,
'type' => 'user',
'attributes' => [
'avatar' => null,
'avatar' => [
'md' => 'http://localhost/assets/images/default-avatar.png',
'sm' => 'http://localhost/assets/images/default-avatar.png',
'xs' => 'http://localhost/assets/images/default-avatar.png',
],
'email' => $user->email,
'role' => $user->role,
'socialite_account' => false,
'two_factor_authentication' => false,
'folders' => [],
'storage' => [
@@ -151,9 +156,21 @@ class UserAccountTest extends TestCase
'capacity_formatted' => '1GB',
],
'created_at' => format_date($user->created_at, '%d. %b. %Y'),
'updated_at' => format_date($user->updated_at, '%d. %b. %Y'),
'updated_at' => format_date($user->updated_at, '%d. %B. %Y'),
],
'meta' => [
'restrictions' => [
'canCreateFolder' => true,
'canCreateTeamFolder' => true,
'canDownload' => true,
'canInviteTeamMembers' => true,
'canUpload' => true,
],
],
'relationships' => [
'creditCards' => [
'data' => [],
],
'settings' => [
'data' => [
'id' => (string) $user->id,
@@ -174,13 +191,6 @@ class UserAccountTest extends TestCase
'favourites' => [
'data' => [],
],
'limitations' => [
'id' => $user->id,
'type' => 'limitations',
'data' => [
'attributes' => $user->limitations,
],
],
],
],
]);

View File

@@ -131,6 +131,14 @@ class AdminTest extends TestCase
'used' => '1.00MB',
'percentage' => 0.1,
],
'traffic' => [
'chart' => [
'download' => [],
'upload' => [],
],
'download' => '0B',
'upload' => '0B',
],
],
],
]);

View File

@@ -3,7 +3,6 @@ namespace Tests\Domain\Admin;
use Tests\TestCase;
use App\Users\Models\User;
use Laravel\Sanctum\Sanctum;
use Domain\Files\Models\File;
class DashboardTest extends TestCase
@@ -25,11 +24,26 @@ class DashboardTest extends TestCase
->getJson('/api/admin/dashboard')
->assertStatus(200)
->assertExactJson([
'license' => 'extended',
'total_premium_users' => 0,
'app_version' => config('vuefilemanager.version'),
'total_users' => 1,
'total_used_space' => '2.00MB',
'app' => [
'earnings' => '$0.00',
'license' => 'extended',
'version' => config('vuefilemanager.version'),
],
'disk' => [
'download' => [
'records' => [],
'total' => '0B',
],
'upload' => [
'records' => [],
'total' => '0B',
],
'used' => '2.00MB',
],
'users' => [
'total' => 1,
'usersPremiumTotal' => 0,
],
]);
}
@@ -39,20 +53,21 @@ class DashboardTest extends TestCase
public function it_get_new_users_for_dashboard()
{
$users = User::factory()
->count(5)
->count(3)
->create(['role' => 'user']);
$admin = User::factory()
->create(['role' => 'admin']);
Sanctum::actingAs($admin);
$users->each(function ($user) {
$this->getJson('/api/admin/dashboard/newbies')
$users->each(
fn ($user) =>
$this
->actingAs($admin)
->getJson('/api/admin/dashboard/newbies')
->assertStatus(200)
->assertJsonFragment([
'id' => $user->id,
]);
});
])
);
}
}

View File

@@ -1,5 +1,4 @@
<?php
namespace Tests\Domain\Settings;
use Storage;

View File

@@ -1,5 +1,4 @@
<?php
namespace Tests\Support\Scheduler;
use Storage;