Merge pull request #1130 from stanjg/feature/stats-page
Added a statistics page to monitor the panel usage
This commit is contained in:
commit
fd8d7c3571
14 changed files with 576 additions and 0 deletions
113
tests/Unit/Http/Controllers/Admin/StatisticsControllerTest.php
Normal file
113
tests/Unit/Http/Controllers/Admin/StatisticsControllerTest.php
Normal file
|
@ -0,0 +1,113 @@
|
|||
<?php
|
||||
/**
|
||||
* Created by PhpStorm.
|
||||
* User: Stan
|
||||
* Date: 26-5-2018
|
||||
* Time: 21:06
|
||||
*/
|
||||
|
||||
namespace Tests\Unit\Http\Controllers\Admin;
|
||||
|
||||
use Illuminate\Database\Eloquent\Builder;
|
||||
use Illuminate\Routing\Controller;
|
||||
use Mockery as m;
|
||||
use Pterodactyl\Contracts\Repository\AllocationRepositoryInterface;
|
||||
use Pterodactyl\Contracts\Repository\DatabaseRepositoryInterface;
|
||||
use Pterodactyl\Contracts\Repository\EggRepositoryInterface;
|
||||
use Pterodactyl\Contracts\Repository\NodeRepositoryInterface;
|
||||
use Pterodactyl\Contracts\Repository\ServerRepositoryInterface;
|
||||
use Pterodactyl\Contracts\Repository\UserRepositoryInterface;
|
||||
use Pterodactyl\Http\Controllers\Admin\StatisticsController;
|
||||
use Pterodactyl\Models\Node;
|
||||
use Tests\Assertions\ControllerAssertionsTrait;
|
||||
use Tests\Unit\Http\Controllers\ControllerTestCase;
|
||||
|
||||
class StatisticsControllerTest extends ControllerTestCase
|
||||
{
|
||||
use ControllerAssertionsTrait;
|
||||
|
||||
/**
|
||||
* @var \Pterodactyl\Contracts\Repository\AllocationRepositoryInterface|\Mockery\Mock
|
||||
*/
|
||||
private $allocationRepository;
|
||||
|
||||
/**
|
||||
* @var \Pterodactyl\Contracts\Repository\DatabaseRepositoryInterface|\Mockery\Mock
|
||||
*/
|
||||
private $databaseRepository;
|
||||
|
||||
/**
|
||||
* @var \Pterodactyl\Contracts\Repository\EggRepositoryInterface|\Mockery\Mock
|
||||
*/
|
||||
private $eggRepository;
|
||||
|
||||
/**
|
||||
* @var \Pterodactyl\Contracts\Repository\NodeRepositoryInterface|\Mockery\Mock
|
||||
*/
|
||||
private $nodeRepository;
|
||||
|
||||
/**
|
||||
* @var \Pterodactyl\Contracts\Repository\ServerRepositoryInterface|\Mockery\Mock
|
||||
*/
|
||||
private $serverRepository;
|
||||
|
||||
/**
|
||||
* @var \Pterodactyl\Contracts\Repository\UserRepositoryInterface|\Mockery\Mock
|
||||
*/
|
||||
private $userRepository;
|
||||
|
||||
public function setUp()
|
||||
{
|
||||
parent::setUp();
|
||||
|
||||
$this->allocationRepository = m::mock(AllocationRepositoryInterface::class);
|
||||
$this->databaseRepository = m::mock(DatabaseRepositoryInterface::class);
|
||||
$this->eggRepository = m::mock(EggRepositoryInterface::class);
|
||||
$this->nodeRepository = m::mock(NodeRepositoryInterface::class);
|
||||
$this->serverRepository = m::mock(ServerRepositoryInterface::class);
|
||||
$this->userRepository = m::mock(UserRepositoryInterface::class);
|
||||
}
|
||||
|
||||
public function testIndexController()
|
||||
{
|
||||
$controller = $this->getController();
|
||||
|
||||
$this->serverRepository->shouldReceive('all')->withNoArgs();
|
||||
$this->nodeRepository->shouldReceive('all')->withNoArgs()->andReturn(collect([factory(Node::class)->make(), factory(Node::class)->make()]));
|
||||
$this->userRepository->shouldReceive('count')->withNoArgs();
|
||||
$this->eggRepository->shouldReceive('count')->withNoArgs();
|
||||
$this->databaseRepository->shouldReceive('count')->withNoArgs();
|
||||
$this->allocationRepository->shouldReceive('count')->withNoArgs();
|
||||
$this->serverRepository->shouldReceive('getSuspendedServersCount')->withNoArgs();
|
||||
|
||||
$this->nodeRepository->shouldReceive('getUsageStatsRaw')->twice()->andReturn([
|
||||
'memory' => [
|
||||
'value' => 1024,
|
||||
'max' => 512,
|
||||
],
|
||||
'disk' => [
|
||||
'value' => 1024,
|
||||
'max' => 512,
|
||||
]
|
||||
]);
|
||||
|
||||
$controller->shouldReceive('injectJavascript')->once();
|
||||
|
||||
$response = $controller->index();
|
||||
|
||||
$this->assertIsViewResponse($response);
|
||||
$this->assertViewNameEquals('admin.statistics', $response);
|
||||
}
|
||||
|
||||
private function getController()
|
||||
{
|
||||
return $this->buildMockedController(StatisticsController::class, [$this->allocationRepository,
|
||||
$this->databaseRepository,
|
||||
$this->eggRepository,
|
||||
$this->nodeRepository,
|
||||
$this->serverRepository,
|
||||
$this->userRepository]
|
||||
);
|
||||
}
|
||||
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue