mirror of
https://github.com/firefly-iii/firefly-iii.git
synced 2025-09-30 10:33:30 +00:00
Add some tests.
This commit is contained in:
@@ -49,7 +49,7 @@ class AccountController extends Controller
|
|||||||
|
|
||||||
protected array $acceptedRoles = [UserRoleEnum::READ_ONLY];
|
protected array $acceptedRoles = [UserRoleEnum::READ_ONLY];
|
||||||
|
|
||||||
private array $chartData;
|
private array $chartData = [];
|
||||||
private AccountRepositoryInterface $repository;
|
private AccountRepositoryInterface $repository;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -61,6 +61,7 @@ class AccountController extends Controller
|
|||||||
$this->middleware(
|
$this->middleware(
|
||||||
function ($request, $next) {
|
function ($request, $next) {
|
||||||
$this->repository = app(AccountRepositoryInterface::class);
|
$this->repository = app(AccountRepositoryInterface::class);
|
||||||
|
$this->validateUserGroup($request);
|
||||||
$this->repository->setUserGroup($this->userGroup);
|
$this->repository->setUserGroup($this->userGroup);
|
||||||
$this->repository->setUser($this->user);
|
$this->repository->setUser($this->user);
|
||||||
|
|
||||||
|
@@ -38,6 +38,7 @@ class BalanceController extends Controller
|
|||||||
parent::__construct();
|
parent::__construct();
|
||||||
$this->middleware(
|
$this->middleware(
|
||||||
function ($request, $next) {
|
function ($request, $next) {
|
||||||
|
$this->validateUserGroup($request);
|
||||||
$this->repository = app(AccountRepositoryInterface::class);
|
$this->repository = app(AccountRepositoryInterface::class);
|
||||||
$this->collector = app(GroupCollectorInterface::class);
|
$this->collector = app(GroupCollectorInterface::class);
|
||||||
$this->repository->setUserGroup($this->userGroup);
|
$this->repository->setUserGroup($this->userGroup);
|
||||||
|
@@ -27,6 +27,7 @@ namespace FireflyIII\Api\V1\Controllers\Chart;
|
|||||||
use Carbon\Carbon;
|
use Carbon\Carbon;
|
||||||
use FireflyIII\Api\V1\Controllers\Controller;
|
use FireflyIII\Api\V1\Controllers\Controller;
|
||||||
use FireflyIII\Api\V1\Requests\Data\DateRequest;
|
use FireflyIII\Api\V1\Requests\Data\DateRequest;
|
||||||
|
use FireflyIII\Api\V1\Requests\Data\SameDateRequest;
|
||||||
use FireflyIII\Enums\UserRoleEnum;
|
use FireflyIII\Enums\UserRoleEnum;
|
||||||
use FireflyIII\Exceptions\FireflyException;
|
use FireflyIII\Exceptions\FireflyException;
|
||||||
use FireflyIII\Models\Budget;
|
use FireflyIII\Models\Budget;
|
||||||
@@ -67,7 +68,6 @@ class BudgetController extends Controller
|
|||||||
$this->repository = app(BudgetRepositoryInterface::class);
|
$this->repository = app(BudgetRepositoryInterface::class);
|
||||||
$this->blRepository = app(BudgetLimitRepositoryInterface::class);
|
$this->blRepository = app(BudgetLimitRepositoryInterface::class);
|
||||||
$this->opsRepository = app(OperationsRepositoryInterface::class);
|
$this->opsRepository = app(OperationsRepositoryInterface::class);
|
||||||
$this->validateUserGroup($request);
|
|
||||||
$this->repository->setUserGroup($this->userGroup);
|
$this->repository->setUserGroup($this->userGroup);
|
||||||
$this->opsRepository->setUserGroup($this->userGroup);
|
$this->opsRepository->setUserGroup($this->userGroup);
|
||||||
$this->blRepository->setUserGroup($this->userGroup);
|
$this->blRepository->setUserGroup($this->userGroup);
|
||||||
@@ -85,7 +85,7 @@ class BudgetController extends Controller
|
|||||||
*
|
*
|
||||||
* @throws FireflyException
|
* @throws FireflyException
|
||||||
*/
|
*/
|
||||||
public function overview(DateRequest $request): JsonResponse
|
public function overview(SameDateRequest $request): JsonResponse
|
||||||
{
|
{
|
||||||
$params = $request->getAll();
|
$params = $request->getAll();
|
||||||
|
|
||||||
|
@@ -27,6 +27,7 @@ namespace FireflyIII\Api\V1\Controllers\Chart;
|
|||||||
use Carbon\Carbon;
|
use Carbon\Carbon;
|
||||||
use FireflyIII\Api\V1\Controllers\Controller;
|
use FireflyIII\Api\V1\Controllers\Controller;
|
||||||
use FireflyIII\Api\V1\Requests\Data\DateRequest;
|
use FireflyIII\Api\V1\Requests\Data\DateRequest;
|
||||||
|
use FireflyIII\Api\V1\Requests\Data\SameDateRequest;
|
||||||
use FireflyIII\Enums\AccountTypeEnum;
|
use FireflyIII\Enums\AccountTypeEnum;
|
||||||
use FireflyIII\Enums\TransactionTypeEnum;
|
use FireflyIII\Enums\TransactionTypeEnum;
|
||||||
use FireflyIII\Enums\UserRoleEnum;
|
use FireflyIII\Enums\UserRoleEnum;
|
||||||
@@ -59,6 +60,7 @@ class CategoryController extends Controller
|
|||||||
parent::__construct();
|
parent::__construct();
|
||||||
$this->middleware(
|
$this->middleware(
|
||||||
function ($request, $next) {
|
function ($request, $next) {
|
||||||
|
$this->validateUserGroup($request);
|
||||||
$this->accountRepos = app(AccountRepositoryInterface::class);
|
$this->accountRepos = app(AccountRepositoryInterface::class);
|
||||||
$this->currencyRepos = app(CurrencyRepositoryInterface::class);
|
$this->currencyRepos = app(CurrencyRepositoryInterface::class);
|
||||||
$this->accountRepos->setUserGroup($this->userGroup);
|
$this->accountRepos->setUserGroup($this->userGroup);
|
||||||
@@ -79,7 +81,7 @@ class CategoryController extends Controller
|
|||||||
*
|
*
|
||||||
* @SuppressWarnings("PHPMD.UnusedFormalParameter")
|
* @SuppressWarnings("PHPMD.UnusedFormalParameter")
|
||||||
*/
|
*/
|
||||||
public function overview(DateRequest $request): JsonResponse
|
public function overview(SameDateRequest $request): JsonResponse
|
||||||
{
|
{
|
||||||
/** @var Carbon $start */
|
/** @var Carbon $start */
|
||||||
$start = $this->parameters->get('start');
|
$start = $this->parameters->get('start');
|
||||||
|
@@ -25,6 +25,7 @@ declare(strict_types=1);
|
|||||||
namespace FireflyIII\Api\V1\Controllers\Data;
|
namespace FireflyIII\Api\V1\Controllers\Data;
|
||||||
|
|
||||||
use FireflyIII\Api\V1\Controllers\Controller;
|
use FireflyIII\Api\V1\Controllers\Controller;
|
||||||
|
use FireflyIII\Enums\UserRoleEnum;
|
||||||
use FireflyIII\Models\Account;
|
use FireflyIII\Models\Account;
|
||||||
use FireflyIII\Models\Bill;
|
use FireflyIII\Models\Bill;
|
||||||
use FireflyIII\Models\Budget;
|
use FireflyIII\Models\Budget;
|
||||||
@@ -44,6 +45,19 @@ use Illuminate\Http\JsonResponse;
|
|||||||
*/
|
*/
|
||||||
class PurgeController extends Controller
|
class PurgeController extends Controller
|
||||||
{
|
{
|
||||||
|
protected array $acceptedRoles = [UserRoleEnum::FULL];
|
||||||
|
public function __construct()
|
||||||
|
{
|
||||||
|
parent::__construct();
|
||||||
|
$this->middleware(
|
||||||
|
function ($request, $next) {
|
||||||
|
$this->validateUserGroup($request);
|
||||||
|
|
||||||
|
return $next($request);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* TODO cleanup and use repositories.
|
* TODO cleanup and use repositories.
|
||||||
*/
|
*/
|
||||||
|
@@ -38,6 +38,9 @@
|
|||||||
<env name="DB_CONNECTION" value="sqlite"/>
|
<env name="DB_CONNECTION" value="sqlite"/>
|
||||||
<env name="APP_LOG_ENV" value="notice"/>
|
<env name="APP_LOG_ENV" value="notice"/>
|
||||||
<env name="DB_DATABASE" value=""/>
|
<env name="DB_DATABASE" value=""/>
|
||||||
|
<env name="APP_LOG_LEVEL" value="notice"/>
|
||||||
|
<env name="AUDIT_LOG_LEVEL" value="emergency" />
|
||||||
|
|
||||||
|
|
||||||
<env name="QUERY_PARSER_IMPLEMENTATION" value="new"/>
|
<env name="QUERY_PARSER_IMPLEMENTATION" value="new"/>
|
||||||
</php>
|
</php>
|
||||||
|
@@ -102,10 +102,10 @@ Route::group(
|
|||||||
[
|
[
|
||||||
'namespace' => 'FireflyIII\Api\V1\Controllers\Chart',
|
'namespace' => 'FireflyIII\Api\V1\Controllers\Chart',
|
||||||
'prefix' => 'v1/chart/balance',
|
'prefix' => 'v1/chart/balance',
|
||||||
'as' => 'api.v1.chart.balance',
|
'as' => 'api.v1.chart.balance.',
|
||||||
],
|
],
|
||||||
static function (): void {
|
static function (): void {
|
||||||
Route::get('balance', ['uses' => 'BalanceController@balance', 'as' => 'balance.balance']);
|
Route::get('balance', ['uses' => 'BalanceController@balance', 'as' => 'balance']);
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
42
tests/integration/Api/Chart/AccountControllerTest.php
Normal file
42
tests/integration/Api/Chart/AccountControllerTest.php
Normal 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);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
42
tests/integration/Api/Chart/BalanceControllerTest.php
Normal file
42
tests/integration/Api/Chart/BalanceControllerTest.php
Normal 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);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
42
tests/integration/Api/Chart/BudgetControllerTest.php
Normal file
42
tests/integration/Api/Chart/BudgetControllerTest.php
Normal 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);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
42
tests/integration/Api/Chart/CategoryControllerTest.php
Normal file
42
tests/integration/Api/Chart/CategoryControllerTest.php
Normal 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);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
@@ -29,7 +29,6 @@ use FireflyIII\Models\UserRole;
|
|||||||
use FireflyIII\User;
|
use FireflyIII\User;
|
||||||
use Illuminate\Foundation\Testing\RefreshDatabase;
|
use Illuminate\Foundation\Testing\RefreshDatabase;
|
||||||
use Illuminate\Foundation\Testing\TestCase as BaseTestCase;
|
use Illuminate\Foundation\Testing\TestCase as BaseTestCase;
|
||||||
use Illuminate\Support\Facades\DB;
|
|
||||||
use Tests\integration\Traits\CollectsValues;
|
use Tests\integration\Traits\CollectsValues;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -57,6 +56,11 @@ abstract class TestCase extends BaseTestCase
|
|||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected function getAuthenticatedUser(): User
|
||||||
|
{
|
||||||
|
return User::where('email', 'james@firefly')->first();
|
||||||
|
}
|
||||||
|
|
||||||
protected function createAuthenticatedUser(): User
|
protected function createAuthenticatedUser(): User
|
||||||
{
|
{
|
||||||
$group = UserGroup::create(['title' => 'test@email.com']);
|
$group = UserGroup::create(['title' => 'test@email.com']);
|
||||||
@@ -76,8 +80,6 @@ abstract class TestCase extends BaseTestCase
|
|||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
return $user;
|
return $user;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user