diff --git a/app/Http/Controllers/Auth/RegisterController.php b/app/Http/Controllers/Auth/RegisterController.php index 5d7f731206..79701fe3f7 100644 --- a/app/Http/Controllers/Auth/RegisterController.php +++ b/app/Http/Controllers/Auth/RegisterController.php @@ -36,6 +36,7 @@ use Illuminate\Foundation\Auth\RegistersUsers; use Illuminate\Http\RedirectResponse; use Illuminate\Http\Request; use Illuminate\Routing\Redirector; +use Illuminate\Support\Facades\Log; use Illuminate\Validation\ValidationException; use Illuminate\View\View; use Psr\Container\ContainerExceptionInterface; @@ -94,7 +95,7 @@ class RegisterController extends Controller $this->validator($request->all())->validate(); $user = $this->createUser($request->all()); - app('log')->info(sprintf('Registered new user %s', $user->email)); + Log::info(sprintf('Registered new user %s', $user->email)); $owner = new OwnerNotifiable(); event(new RegisteredUser($owner, $user)); diff --git a/app/Support/Navigation.php b/app/Support/Navigation.php index e3edfa9b7f..d88b01ba38 100644 --- a/app/Support/Navigation.php +++ b/app/Support/Navigation.php @@ -464,7 +464,7 @@ class Navigation $displayFormat = (string) trans('config.month_and_day_js', [], $locale); $diff = $start->diffInMonths($end, true); // increment by month (for year) - if ($diff >= 1.0001) { + if ($diff >= 1.0001 && $diff < 12.001) { $increment = 'addMonth'; $displayFormat = (string) trans('config.month_js'); } @@ -495,7 +495,7 @@ class Navigation $format = 'Y-m-d'; $diff = $start->diffInMonths($end, true); // Log::debug(sprintf('preferredCarbonFormat(%s, %s) = %f', $start->format('Y-m-d'), $end->format('Y-m-d'), $diff)); - if ($diff >= 1.001) { + if ($diff >= 1.001 && $diff < 12.001) { // Log::debug(sprintf('Return Y-m because %s', $diff)); $format = 'Y-m'; } @@ -566,7 +566,7 @@ class Navigation { $locale = app('steam')->getLocale(); $diff = $start->diffInMonths($end, true); - if ($diff >= 1.001) { + if ($diff >= 1.001 && $diff < 12.001) { return (string) trans('config.month_js', [], $locale); } @@ -584,7 +584,7 @@ class Navigation public function preferredEndOfPeriod(Carbon $start, Carbon $end): string { $diff = $start->diffInMonths($end, true); - if ($diff >= 1.001) { + if ($diff >= 1.001 && $diff < 12.001) { return 'endOfMonth'; } @@ -602,7 +602,7 @@ class Navigation public function preferredRangeFormat(Carbon $start, Carbon $end): string { $diff = $start->diffInMonths($end, true); - if ($diff >= 1.001) { + if ($diff >= 1.001 && $diff < 12.001) { return '1M'; } @@ -620,7 +620,7 @@ class Navigation public function preferredSqlFormat(Carbon $start, Carbon $end): string { $diff = $start->diffInMonths($end, true); - if ($diff >= 1.001) { + if ($diff >= 1.001 && $diff < 12.001) { return '%Y-%m'; } diff --git a/app/Support/Repositories/UserGroup/UserGroupTrait.php b/app/Support/Repositories/UserGroup/UserGroupTrait.php index 52f78553fa..5e5eb6c59f 100644 --- a/app/Support/Repositories/UserGroup/UserGroupTrait.php +++ b/app/Support/Repositories/UserGroup/UserGroupTrait.php @@ -66,7 +66,7 @@ trait UserGroupTrait if ($user instanceof User) { $this->user = $user; if (null === $user->userGroup) { - throw new FireflyException(sprintf('User #%d has no user group.', $user->id)); + throw new FireflyException(sprintf('User #%d ("%s") has no user group.', $user->id, $user->email)); } $this->userGroup = $user->userGroup; diff --git a/app/User.php b/app/User.php index 3ebadaf347..03976c22c3 100644 --- a/app/User.php +++ b/app/User.php @@ -74,7 +74,7 @@ class User extends Authenticatable use HasApiTokens; use Notifiable; use ReturnsIntegerIdTrait; - protected $fillable = ['email', 'password', 'blocked', 'blocked_code']; + protected $fillable = ['email', 'password', 'blocked', 'blocked_code','user_group_id']; protected $hidden = ['password', 'remember_token']; protected $table = 'users'; diff --git a/phpunit.xml b/phpunit.xml index 7c96bdee3e..d6b3e3e27d 100644 --- a/phpunit.xml +++ b/phpunit.xml @@ -31,12 +31,15 @@ failOnRisky="true" failOnWarning="true" processIsolation="false" + stopOnError="true" stopOnFailure="true"> + + + - diff --git a/tests/integration/Api/Autocomplete/BillControllerTest.php b/tests/integration/Api/Autocomplete/BillControllerTest.php index 7dc6b950b7..c464022132 100644 --- a/tests/integration/Api/Autocomplete/BillControllerTest.php +++ b/tests/integration/Api/Autocomplete/BillControllerTest.php @@ -45,20 +45,6 @@ final class BillControllerTest extends TestCase */ use RefreshDatabase; - #[Override] - protected function createAuthenticatedUser(): User - { - $userGroup = UserGroup::create(['title' => 'Test Group']); - - $user = User::create([ - 'email' => 'test@email.com', - 'password' => 'password', - ]); - $user->user_group_id = $userGroup->id; - $user->save(); - - return $user; - } private function createTestBills(int $count, User $user): void { @@ -96,7 +82,6 @@ final class BillControllerTest extends TestCase $response = $this->get(route('api.v1.autocomplete.bills'), ['Accept' => 'application/json']); $response->assertStatus(200); $response->assertHeader('Content-Type', 'application/json'); - } public function testGivenAuthenticatedRequestWhenCallingTheBillsEndpointThenReturnsBills(): void diff --git a/tests/integration/Api/Autocomplete/BudgetControllerTest.php b/tests/integration/Api/Autocomplete/BudgetControllerTest.php index e137f5d262..f4ccac21f8 100644 --- a/tests/integration/Api/Autocomplete/BudgetControllerTest.php +++ b/tests/integration/Api/Autocomplete/BudgetControllerTest.php @@ -45,21 +45,6 @@ final class BudgetControllerTest extends TestCase */ use RefreshDatabase; - #[Override] - protected function createAuthenticatedUser(): User - { - $userGroup = UserGroup::create(['title' => 'Test Group']); - - $user = User::create([ - 'email' => 'test@email.com', - 'password' => 'password', - ]); - $user->user_group_id = $userGroup->id; - $user->save(); - - return $user; - } - private function createTestBudgets(int $count, User $user): void { for ($i = 1; $i <= $count; ++$i) { diff --git a/tests/integration/Api/Autocomplete/CategoryControllerTest.php b/tests/integration/Api/Autocomplete/CategoryControllerTest.php index 9456cf4001..2fd62f9412 100644 --- a/tests/integration/Api/Autocomplete/CategoryControllerTest.php +++ b/tests/integration/Api/Autocomplete/CategoryControllerTest.php @@ -25,7 +25,9 @@ declare(strict_types=1); namespace Tests\integration\Api\Autocomplete; use FireflyIII\Models\Category; +use FireflyIII\Models\UserRole; use Illuminate\Foundation\Testing\RefreshDatabase; +use Illuminate\Support\Facades\DB; use Tests\integration\TestCase; use FireflyIII\User; use FireflyIII\Models\UserGroup; @@ -45,20 +47,7 @@ final class CategoryControllerTest extends TestCase */ use RefreshDatabase; - #[Override] - protected function createAuthenticatedUser(): User - { - $userGroup = UserGroup::create(['title' => 'Test Group']); - $user = User::create([ - 'email' => 'test@email.com', - 'password' => 'password', - ]); - $user->user_group_id = $userGroup->id; - $user->save(); - - return $user; - } private function createTestCategories(int $count, User $user): void { diff --git a/tests/integration/Api/Autocomplete/CurrencyControllerTest.php b/tests/integration/Api/Autocomplete/CurrencyControllerTest.php index efdd02a866..73fc6952f9 100644 --- a/tests/integration/Api/Autocomplete/CurrencyControllerTest.php +++ b/tests/integration/Api/Autocomplete/CurrencyControllerTest.php @@ -45,21 +45,6 @@ final class CurrencyControllerTest extends TestCase */ use RefreshDatabase; - #[Override] - protected function createAuthenticatedUser(): User - { - $userGroup = UserGroup::create(['title' => 'Test Group']); - - - $user = User::create([ - 'email' => 'test@email.com', - 'password' => 'password', - ]); - $user->user_group_id = $userGroup->id; - $user->save(); - - return $user; - } private function createTestCurrencies(int $count, bool $enabled): void { diff --git a/tests/integration/Api/Autocomplete/ObjectGroupControllerTest.php b/tests/integration/Api/Autocomplete/ObjectGroupControllerTest.php index e6a089b7ec..14f3cfbc7c 100644 --- a/tests/integration/Api/Autocomplete/ObjectGroupControllerTest.php +++ b/tests/integration/Api/Autocomplete/ObjectGroupControllerTest.php @@ -45,22 +45,6 @@ final class ObjectGroupControllerTest extends TestCase */ use RefreshDatabase; - #[Override] - protected function createAuthenticatedUser(): User - { - $userGroup = UserGroup::create(['title' => 'Test Group']); - - - $user = User::create([ - 'email' => 'test@email.com', - 'password' => 'password', - ]); - $user->user_group_id = $userGroup->id; - $user->save(); - - return $user; - } - private function createTestObjectGroups(int $count, User $user): void { for ($i = 1; $i <= $count; ++$i) { diff --git a/tests/integration/TestCase.php b/tests/integration/TestCase.php index b55259c8c7..8f88b2d372 100644 --- a/tests/integration/TestCase.php +++ b/tests/integration/TestCase.php @@ -23,10 +23,13 @@ declare(strict_types=1); namespace Tests\integration; +use FireflyIII\Models\GroupMembership; use FireflyIII\Models\UserGroup; +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; /** @@ -57,11 +60,26 @@ abstract class TestCase extends BaseTestCase protected function createAuthenticatedUser(): User { $group = UserGroup::create(['title' => 'test@email.com']); - - return User::create([ + $role = UserRole::where('title', 'owner')->first(); + $user = User::create([ 'email' => 'test@email.com', 'password' => 'password', 'user_group_id' => $group->id, ]); + + GroupMembership::create( + [ + 'user_id' => $user->id, + 'user_group_id' => $group->id, + 'user_role_id' => $role->id, + ] + ); + + + + + return $user; } + + }