ConvoyPanel/tests/Pest.php
2024-03-04 14:32:06 -06:00

89 lines
2.8 KiB
PHP

<?php
use Convoy\Models\Location;
use Convoy\Models\Node;
use Convoy\Models\Server;
use Convoy\Models\User;
use Illuminate\Foundation\Testing\DatabaseTransactions;
use Illuminate\Support\Facades\Http;
use Illuminate\Support\Facades\Queue;
/*
|--------------------------------------------------------------------------
| Test Case
|--------------------------------------------------------------------------
|
| The closure you provide to your test functions is always bound to a specific PHPUnit test
| case class. By default, that class is "PHPUnit\Framework\TestCase". Of course, you may
| need to change it using the "uses()" function to bind a different classes or traits.
|
*/
uses(
Tests\TestCase::class,
DatabaseTransactions::class,
// Illuminate\Foundation\Testing\RefreshDatabase::class,
)->beforeEach(function () {
Http::preventStrayRequests();
Queue::fake();
})->in('Feature', 'Unit');
/*
|--------------------------------------------------------------------------
| Expectations
|--------------------------------------------------------------------------
|
| When you're writing tests, you often need to check that values meet certain conditions. The
| "expect()" function gives you access to a set of "expectations" methods that you can use
| to assert different things. Of course, you may extend the Expectation API at any time.
|
*/
//expect()->extend('toBeOne', function () {
// return $this->toBe(1);
//});
/*
|--------------------------------------------------------------------------
| Functions
|--------------------------------------------------------------------------
|
| While Pest is very powerful out-of-the-box, you may have some testing code specific to your
| project that you don't want to repeat in every file. Here you can also expose helpers as
| global functions to help you to reduce the number of lines of code in your test files.
|
*/
function createServerModel(): array
{
$location = Location::factory()->create();
/** @var User $user */
$user = User::factory()->create();
/** @var Node $node */
$node = Node::factory()->for($location)->create();
$service = app(Convoy\Services\Servers\ServerCreationService::class);
/** @var Server $server */
$server = Server::factory()->create(function () use ($user, $node, $service) {
$uuid = $service->generateUniqueUuidCombo();
return [
'uuid' => $uuid,
'uuid_short' => substr($uuid, 0, 8),
'user_id' => $user,
'node_id' => $node,
'cpu' => 2,
'memory' => 2048 * 1024 * 1024,
'disk' => 20 * 1024 * 1024 * 1024,
'backup_limit' => 16,
'snapshot_limit' => 16,
'bandwidth_limit' => 100 * 1024 * 1024 * 1024,
];
});
return [
$user,
$location,
$node,
$server,
];
}