From 7b65d868c4049b777705b98f0f3b23fcf5a5e157 Mon Sep 17 00:00:00 2001 From: Peter Papp Date: Fri, 23 Jul 2021 17:36:05 +0200 Subject: [PATCH] - added it_test_user_timezone - refactored set_time_by_user_timezone --- src/Domain/Folders/Models/Folder.php | 6 ++---- src/Domain/Settings/Models/Setting.php | 1 + src/Support/helpers.php | 11 ++++------- tests/App/Users/UserAccountTest.php | 26 ++++++++++++++++++++++++++ 4 files changed, 33 insertions(+), 11 deletions(-) diff --git a/src/Domain/Folders/Models/Folder.php b/src/Domain/Folders/Models/Folder.php index 082b482c..6072afd2 100644 --- a/src/Domain/Folders/Models/Folder.php +++ b/src/Domain/Folders/Models/Folder.php @@ -121,8 +121,7 @@ class Folder extends Model public function getCreatedAtAttribute(): string { return format_date( - set_time_by_user_timezone($this->attributes['created_at']), - __t('time') + set_time_by_user_timezone($this->attributes['created_at']), __t('time') ); } @@ -136,8 +135,7 @@ class Folder extends Model } return format_date( - set_time_by_user_timezone($this->attributes['deleted_at']), - __t('time') + set_time_by_user_timezone($this->attributes['deleted_at']), __t('time') ); } diff --git a/src/Domain/Settings/Models/Setting.php b/src/Domain/Settings/Models/Setting.php index 46440a69..60e64c0b 100644 --- a/src/Domain/Settings/Models/Setting.php +++ b/src/Domain/Settings/Models/Setting.php @@ -14,6 +14,7 @@ use Illuminate\Database\Eloquent\Factories\HasFactory; * @method static find(array|string $setting) * @property string value * @property string name + * @property mixed timezone */ class Setting extends Model { diff --git a/src/Support/helpers.php b/src/Support/helpers.php index 73ff1bee..8aca1837 100644 --- a/src/Support/helpers.php +++ b/src/Support/helpers.php @@ -926,21 +926,18 @@ if (! function_exists('get_files_for_zip')) { if (! function_exists('set_time_by_user_timezone')) { /** * Set time by user timezone GMT - * - * @param $time - * @return Carbon */ - function set_time_by_user_timezone($time) + function set_time_by_user_timezone(string $time): string|Carbon { $user = Auth::user(); if ($user) { - $time_zone = intval($user->settings->timezone * 60 ?? null); + $time_zone = $user->settings->timezone ?? 0; - return Carbon::parse($time)->addMinutes($time_zone ?? 0); + return Carbon::parse($time)->addMinutes($time_zone * 60); } - return Carbon::parse($time); + return $time; } } diff --git a/tests/App/Users/UserAccountTest.php b/tests/App/Users/UserAccountTest.php index 6e018bfa..c3cb886d 100644 --- a/tests/App/Users/UserAccountTest.php +++ b/tests/App/Users/UserAccountTest.php @@ -1,6 +1,7 @@ assertExists('files/' . User::first()->id); } + /** + * @test + */ + public function it_test_user_timezone() + { + $user = User::factory(User::class) + ->create(['role' => 'user']); + + Folder::factory(Folder::class) + ->create([ + 'user_id' => $user->id, + 'created_at' => now(), + ]); + + $user->settings()->update([ + 'timezone' => '2.0' + ]); + + $this + ->actingAs($user) + ->getJson("/api/browse/folders/undefined") + ->assertJsonFragment([ + 'created_at' => '01. January. 2021 at 02:00', + ]); + } /** * @test