Add some tests.

This commit is contained in:
James Cole
2025-08-16 14:52:29 +02:00
parent f04ed5b8f0
commit e7d9dc57d8
12 changed files with 207 additions and 16 deletions

View File

@@ -0,0 +1,42 @@
<?php
namespace Tests\integration\Api\Chart;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Tests\integration\TestCase;
class AccountControllerTest extends TestCase
{
use RefreshDatabase;
private $user;
#[Override]
protected function setUp(): void
{
parent::setUp();
if (!isset($this->user)) {
$this->user = $this->createAuthenticatedUser();
}
$this->actingAs($this->user);
}
public function testGetOverviewChartFails(): void
{
$this->actingAs($this->user);
$response = $this->getJson(route('api.v1.chart.account.overview'));
$response->assertStatus(422);
}
public function testGetOverviewChart(): void
{
$this->actingAs($this->user);
$params = [
'start' => '2024-01-01',
'end' => '2024-01-31',
];
$response = $this->getJson(route('api.v1.chart.account.overview') . '?' . http_build_query($params));
$response->assertStatus(200);
}
}

View File

@@ -0,0 +1,42 @@
<?php
namespace Tests\integration\Api\Chart;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Tests\integration\TestCase;
class BalanceControllerTest extends TestCase
{
use RefreshDatabase;
private $user;
#[Override]
protected function setUp(): void
{
parent::setUp();
if (!isset($this->user)) {
$this->user = $this->createAuthenticatedUser();
}
$this->actingAs($this->user);
}
public function testGetOverviewChartFails(): void
{
$this->actingAs($this->user);
$response = $this->getJson(route('api.v1.chart.balance.balance'));
$response->assertStatus(422);
}
public function testGetOverviewChart(): void
{
$this->actingAs($this->user);
$params = [
'start' => '2024-01-01',
'end' => '2024-01-31',
];
$response = $this->getJson(route('api.v1.chart.balance.balance') . '?' . http_build_query($params));
$response->assertStatus(200);
}
}

View File

@@ -0,0 +1,42 @@
<?php
namespace Tests\integration\Api\Chart;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Tests\integration\TestCase;
class BudgetControllerTest extends TestCase
{
use RefreshDatabase;
private $user;
#[Override]
protected function setUp(): void
{
parent::setUp();
if (!isset($this->user)) {
$this->user = $this->createAuthenticatedUser();
}
$this->actingAs($this->user);
}
public function testGetOverviewChartFails(): void
{
$this->actingAs($this->user);
$response = $this->getJson(route('api.v1.chart.budget.overview'));
$response->assertStatus(422);
}
public function testGetOverviewChart(): void
{
$this->actingAs($this->user);
$params = [
'start' => '2024-01-01',
'end' => '2024-01-31',
];
$response = $this->getJson(route('api.v1.chart.budget.overview') . '?' . http_build_query($params));
$response->assertStatus(200);
}
}

View File

@@ -0,0 +1,42 @@
<?php
namespace Tests\integration\Api\Chart;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Tests\integration\TestCase;
class CategoryControllerTest extends TestCase
{
use RefreshDatabase;
private $user;
#[Override]
protected function setUp(): void
{
parent::setUp();
if (!isset($this->user)) {
$this->user = $this->createAuthenticatedUser();
}
$this->actingAs($this->user);
}
public function testGetOverviewChartFails(): void
{
$this->actingAs($this->user);
$response = $this->getJson(route('api.v1.chart.category.overview'));
$response->assertStatus(422);
}
public function testGetOverviewChart(): void
{
$this->actingAs($this->user);
$params = [
'start' => '2024-01-01',
'end' => '2024-01-31',
];
$response = $this->getJson(route('api.v1.chart.category.overview') . '?' . http_build_query($params));
$response->assertStatus(200);
}
}

View File

@@ -29,7 +29,6 @@ use FireflyIII\Models\UserRole;
use FireflyIII\User;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Illuminate\Foundation\Testing\TestCase as BaseTestCase;
use Illuminate\Support\Facades\DB;
use Tests\integration\Traits\CollectsValues;
/**
@@ -42,7 +41,7 @@ abstract class TestCase extends BaseTestCase
use RefreshDatabase;
protected const MAX_ITERATIONS = 2;
protected $seed = true;
protected $seed = true;
public function dateRangeProvider(): array
{
@@ -57,15 +56,20 @@ abstract class TestCase extends BaseTestCase
];
}
protected function getAuthenticatedUser(): User
{
return User::where('email', 'james@firefly')->first();
}
protected function createAuthenticatedUser(): User
{
$group = UserGroup::create(['title' => 'test@email.com']);
$role = UserRole::where('title', 'owner')->first();
$user = User::create([
'email' => 'test@email.com',
'password' => 'password',
'user_group_id' => $group->id,
]);
$role = UserRole::where('title', 'owner')->first();
$user = User::create([
'email' => 'test@email.com',
'password' => 'password',
'user_group_id' => $group->id,
]);
GroupMembership::create(
[
@@ -76,8 +80,6 @@ abstract class TestCase extends BaseTestCase
);
return $user;
}