Skip to content
Snippets Groups Projects
Unverified Commit 4a2ce81a authored by Maxime FRIESS's avatar Maxime FRIESS :blue_heart:
Browse files

[tests] Added server stop route tests

parent f9e466f0
Branches
Tags
No related merge requests found
<?php
namespace Tests\Feature;
use App\Jobs\CheckServers;
use App\Models\Game;
use App\Models\Server;
use App\Models\User;
use Carbon\Carbon;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Illuminate\Foundation\Testing\WithFaker;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Hash;
use Tests\TestCase;
class StopTest extends TestCase
{
use RefreshDatabase;
public function test_stop()
{
$user = User::create([
'username' => 'test',
'email' => 'test@localhost',
'password' => Hash::make('test'),
]);
$user2 = User::create([
'username' => 'test2',
'email' => 'test2@localhost',
'password' => Hash::make('test'),
]);
$server = Server::create([
'login' => 'test',
'password' => Hash::make('test'),
'owner_id' => $user->id,
'public' => true
]);
$user->server_id = $server->id;
$user->server_state = 'connected';
$user->server_token = null;
$user->save();
$user2->server_id = $server->id;
$user2->server_state = 'connected';
$user2->server_token = null;
$user2->save();
$server->heartbeat('127.0.0.1', 12345, 'pubkey');
$server->last_heartbeat_at = Carbon::now()->subMinutes(5);
$server->save();
$game = Game::create([
"server_id" => $server->id
]);
$game->users()->attach($user->id);
$game->users()->attach($user2->id);
$server = $server->refresh();
$this->assertEquals(true, $server->online);
$this->assertEquals("127.0.0.1", $server->ip);
$this->assertEquals(12345, $server->port);
$this->assertEquals("pubkey", $server->pubkey);
$server_token = Auth::guard('server')->login($server);
$response = $this->withHeaders([
"Authorization" => "Bearer " . $server_token
])->post('/api/auth/server/stop');
$response->assertStatus(204);
$server = $server->refresh();
$this->assertEquals(null, $server->online);
$this->assertEquals(null, $server->ip);
$this->assertEquals(null, $server->port);
$this->assertEquals(null, $server->pubkey);
$user = $user->refresh();
$this->assertEquals(null, $user->server_id);
$this->assertEquals("offline", $user->server_state);
$this->assertEquals(null, $user->server_token);
$user2 = $user2->refresh();
$this->assertEquals(null, $user2->server_id);
$this->assertEquals("offline", $user2->server_state);
$this->assertEquals(null, $user2->server_token);
$this->assertDatabaseCount("games", 0);
$this->assertDatabaseCount("users_games", 0);
}
public function test_stop_game_finished()
{
$user = User::create([
'username' => 'test',
'email' => 'test@localhost',
'password' => Hash::make('test'),
]);
$user2 = User::create([
'username' => 'test2',
'email' => 'test2@localhost',
'password' => Hash::make('test'),
]);
$server = Server::create([
'login' => 'test',
'password' => Hash::make('test'),
'owner_id' => $user->id,
'public' => true
]);
$user->server_id = $server->id;
$user->server_state = 'connected';
$user->server_token = null;
$user->save();
$user2->server_id = $server->id;
$user2->server_state = 'connected';
$user2->server_token = null;
$user2->save();
$server->heartbeat('127.0.0.1', 12345, 'pubkey');
$server->last_heartbeat_at = Carbon::now()->subMinutes(5);
$server->save();
$game = Game::create([
"server_id" => $server->id
]);
$game->users()->attach($user->id);
$game->users()->attach($user2->id);
$game->state = 'finished';
$game->save();
$server = $server->refresh();
$this->assertEquals(true, $server->online);
$this->assertEquals("127.0.0.1", $server->ip);
$this->assertEquals(12345, $server->port);
$this->assertEquals("pubkey", $server->pubkey);
$server_token = Auth::guard('server')->login($server);
$response = $this->withHeaders([
"Authorization" => "Bearer " . $server_token
])->post('/api/auth/server/stop');
$response->assertStatus(204);
$server = $server->refresh();
$this->assertEquals(null, $server->online);
$this->assertEquals(null, $server->ip);
$this->assertEquals(null, $server->port);
$this->assertEquals(null, $server->pubkey);
$user = $user->refresh();
$this->assertEquals(null, $user->server_id);
$this->assertEquals("offline", $user->server_state);
$this->assertEquals(null, $user->server_token);
$user2 = $user2->refresh();
$this->assertEquals(null, $user2->server_id);
$this->assertEquals("offline", $user2->server_state);
$this->assertEquals(null, $user2->server_token);
$this->assertDatabaseCount("games", 1);
$this->assertDatabaseCount("users_games", 2);
}
public function test_stop_offline()
{
$user = User::create([
'username' => 'test',
'email' => 'test@localhost',
'password' => Hash::make('test'),
]);
$server = Server::create([
'login' => 'test',
'password' => Hash::make('test'),
'owner_id' => $user->id,
'public' => true
]);
$server_token = Auth::guard('server')->login($server);
$response = $this->withHeaders([
"Authorization" => "Bearer " . $server_token
])->post('/api/auth/server/stop');
$response->assertStatus(403);
}
}
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment