ClearBowl/api/tests/Feature/UsersTest.php

54 lines
1.4 KiB
PHP

<?php
namespace Tests\Feature;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Tests\TestCase;
class UsersTest extends TestCase
{
use RefreshDatabase;
private array $loginData = ['email' => 'artur.nowakowski@gmail.com', 'password' => 'test123'];
public function getToken()
{
$response = $this->post('http://localhost:8000/api/user/login', $this->loginData)->decodeResponseJson();
return $response['data']['token'];
}
/**
* A basic test example.
*
* @return void
*/
public function testRegistration()
{
$response = $this->post('http://localhost:8000/api/user/register', $this->loginData);
$response->assertStatus(200);
$response->assertJsonStructure(['success', 'data' => ['token']]);
}
public function testLogin()
{
$this->testRegistration();
$response = $this->post('http://localhost:8000/api/user/login', $this->loginData);
$response->assertStatus(200);
$response->assertJsonStructure(['success', 'data' => ['token']]);
}
public function testMe()
{
$this->testRegistration();
$token = $this->getToken();
$response = $this->get('http://localhost:8000/api/user/me', ['Authorization' => "Bearer $token"]);
$response->assertStatus(200);
$response->assertJsonStructure(['success', 'data' => ['email', 'role']]);
}
}