- added it_test_user_timezone

- refactored set_time_by_user_timezone
This commit is contained in:
Peter Papp
2021-07-23 17:36:05 +02:00
parent 32d54fa50e
commit 7b65d868c4
4 changed files with 33 additions and 11 deletions

View File

@@ -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')
);
}

View File

@@ -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
{

View File

@@ -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;
}
}

View File

@@ -1,6 +1,7 @@
<?php
namespace Tests\Feature\Accounts;
use Domain\Folders\Models\Folder;
use Storage;
use Notification;
use Tests\TestCase;
@@ -31,6 +32,31 @@ class UserAccountTest extends TestCase
Storage::disk('local')
->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