From b7665af6006fc382fd5b1496f5d80bad5d42b7dd Mon Sep 17 00:00:00 2001 From: A1Gard Date: Mon, 26 Aug 2024 00:41:18 +0330 Subject: [PATCH] added client web page test --- app/Helpers/Helper.php | 57 ++++++++++---- app/Http/Controllers/Admin/AreaController.php | 2 - database/seeders/PartSeeder.php | 2 +- .../segments/menu/AplMenu/AplMenu.blade.php | 2 +- .../views/segments/menu/AplMenu/AplMenu.scss | 4 + .../menu/RecetMenu/RecetMenu.blade.php | 2 +- .../PostIndexImage/PostIndexImage.blade.php | 8 +- .../PostsIconSimple/PostsIconSimple.blade.php | 8 +- tests/Feature/ClientWebPagesTest.php | 75 +++++++++++++++++++ tests/Feature/ExampleTest.php | 7 +- tests/Unit/ExampleTest.php | 16 ---- 11 files changed, 140 insertions(+), 43 deletions(-) create mode 100644 tests/Feature/ClientWebPagesTest.php delete mode 100644 tests/Unit/ExampleTest.php diff --git a/app/Helpers/Helper.php b/app/Helpers/Helper.php index c2801a1..d7cedae 100644 --- a/app/Helpers/Helper.php +++ b/app/Helpers/Helper.php @@ -816,25 +816,48 @@ function getGroupBySetting($key) } /** - * get group by setting key + * get menu by setting key * @param $key * @return Menu */ function getMenuBySetting($key) { + if (Menu::count() == 0) { + return []; + } return Menu::where('id', getSetting($key) ?? 1)->first(); } +/** + * get menu's items by setting key + * @param $key + * @return array + */ +function getMenuBySettingItems($key) +{ + if (Menu::count() == 0) { + return []; + } + $r = Menu::where('id', getSetting($key) ?? 1)->first(); + if ($r == null) { + $r = Menu::first(); + } + return $r->items; +} + /** * get group's posts by setting key * @param $key * @param integer $limit - * @return \App\Models\Post[]|\Illuminate\Database\Eloquent\Collection|\LaravelIdea\Helper\App\Models\_IH_Post_C + * @return \App\Models\Post[]|\Illuminate\Database\Eloquent\Collection|\LaravelIdea\Helper\App\Models\_IH_Post_C|array */ function getGroupPostsBySetting($key, $limit = 10, $order = 'id', $dir = "DESC") { - return Group::where('id', getSetting($key) ?? 1)->first() - ->posts()->where('status', 1)->orderBy($order, $dir)->limit($limit)->get(); + $g = Group::where('id', getSetting($key) ?? 1)->first(); + if ($g == null) { + return []; + } + return $g->posts()->where('status', 1)->orderBy($order, $dir)->limit($limit)->get(); } /** @@ -857,12 +880,15 @@ function getCategoryProductBySetting($key, $limit = 10, $order = 'id', $dir = "D * @param integer $limit * @param string $order * @param string $dir - * @return \App\Models\Post[]|\Illuminate\Database\Eloquent\Collection|\LaravelIdea\Helper\App\Models\_IH_Post_C + * @return \App\Models\Post[]|\Illuminate\Database\Eloquent\Collection|\LaravelIdea\Helper\App\Models\_IH_Post_C | array */ function getCategorySubCatsBySetting($key, $limit = 10, $order = 'id', $dir = "DESC") { - return Category::where('id', getSetting($key) ?? 1)->first() - ->children()->orderBy($order, $dir)->limit($limit)->get(); + $c = Category::where('id', getSetting($key) ?? 1)->first(); + if ($c == null) { + return []; + } + return $c->children()->orderBy($order, $dir)->limit($limit)->get(); } /** @@ -994,6 +1020,7 @@ function postsUrl() { return fixUrlLang(\route('client.posts')); } + /** * products url to best experience for multi lang shops * @return string @@ -1002,6 +1029,7 @@ function productsUrl() { return fixUrlLang(\route('client.products')); } + /** * clips url to best experience for multi lang shops * @return string @@ -1010,6 +1038,7 @@ function clipsUrl() { return fixUrlLang(\route('client.clips')); } + /** * galleries url to best experience for multi lang shops * @return string @@ -1018,6 +1047,7 @@ function gallariesUrl() { return fixUrlLang(\route('client.galleries')); } + /** * attachments url to best experience for multi lang shops * @return string @@ -1101,11 +1131,11 @@ function transports() */ function defTrannsport() { - if (\App\Models\Transport::where('is_default',1)->count() == 0){ + if (\App\Models\Transport::where('is_default', 1)->count() == 0) { return null; } - return \App\Models\Transport::where('is_default',1)->first()->id; + return \App\Models\Transport::where('is_default', 1)->first()->id; } @@ -1114,7 +1144,8 @@ function defTrannsport() * @param $array * @return false|string */ -function vueTranslate($array){ +function vueTranslate($array) +{ return json_encode($array); } @@ -1137,7 +1168,7 @@ function markUpBreadcrumbList($items) "name" => $index, ]; if ($item != '' || $item != null) { - $json[$i-1]['item'] = $item; + $json[$i - 1]['item'] = $item; } } @@ -1166,9 +1197,9 @@ RESULT; */ function fixUrlLang($url) { - if ( config('app.xlang.active') && app()->getLocale() != config('app.xlang.main')){ + if (config('app.xlang.active') && app()->getLocale() != config('app.xlang.main')) { $welcome = \route('client.welcome'); - return str_replace($welcome,$welcome .'/'.app()->getLocale(),$url); + return str_replace($welcome, $welcome . '/' . app()->getLocale(), $url); } return $url; } diff --git a/app/Http/Controllers/Admin/AreaController.php b/app/Http/Controllers/Admin/AreaController.php index 6d7ba1e..3f4b6b0 100644 --- a/app/Http/Controllers/Admin/AreaController.php +++ b/app/Http/Controllers/Admin/AreaController.php @@ -20,8 +20,6 @@ class AreaController extends Controller public function desgin(Area $area) { - - $valids = []; foreach ($area->segment as $seg) { if (File::exists(resource_path() . '/views/segments/' . $seg)) { diff --git a/database/seeders/PartSeeder.php b/database/seeders/PartSeeder.php index 364aa7e..eca39b4 100644 --- a/database/seeders/PartSeeder.php +++ b/database/seeders/PartSeeder.php @@ -87,7 +87,7 @@ class PartSeeder extends Seeder $part = new Part(); $part->segment = 'menu'; $part->part = 'AplMenu'; - $part->area_id = Area::where('name', 'index')->first()->id; + $part->area_id = Area::where('name', 'default_header')->first()->id; $part->sort = 0; $part->save(); diff --git a/resources/views/segments/menu/AplMenu/AplMenu.blade.php b/resources/views/segments/menu/AplMenu/AplMenu.blade.php index 4fb6eae..9955c99 100644 --- a/resources/views/segments/menu/AplMenu/AplMenu.blade.php +++ b/resources/views/segments/menu/AplMenu/AplMenu.blade.php @@ -7,7 +7,7 @@ - @foreach(getMenuBySetting($data->area->name.'_'.$data->part.'_menu')->items as $item) + @foreach(getMenuBySettingItems($data->area->name.'_'.$data->part.'_menu') as $item)
  • @if($item->meta == null) diff --git a/resources/views/segments/menu/AplMenu/AplMenu.scss b/resources/views/segments/menu/AplMenu/AplMenu.scss index f56215a..470452f 100644 --- a/resources/views/segments/menu/AplMenu/AplMenu.scss +++ b/resources/views/segments/menu/AplMenu/AplMenu.scss @@ -146,4 +146,8 @@ } } } + + ~header{ + margin-top: 44px; + } } diff --git a/resources/views/segments/menu/RecetMenu/RecetMenu.blade.php b/resources/views/segments/menu/RecetMenu/RecetMenu.blade.php index bdd629d..31696be 100644 --- a/resources/views/segments/menu/RecetMenu/RecetMenu.blade.php +++ b/resources/views/segments/menu/RecetMenu/RecetMenu.blade.php @@ -5,7 +5,7 @@
  • - @foreach(getMenuBySetting($data->area->name.'_'.$data->part.'_menu')->items as $item) + @foreach(getMenuBySettingItems($data->area->name.'_'.$data->part.'_menu') as $item)
  • {{$item->title}} diff --git a/resources/views/segments/posts/PostIndexImage/PostIndexImage.blade.php b/resources/views/segments/posts/PostIndexImage/PostIndexImage.blade.php index 20979c5..7da1696 100644 --- a/resources/views/segments/posts/PostIndexImage/PostIndexImage.blade.php +++ b/resources/views/segments/posts/PostIndexImage/PostIndexImage.blade.php @@ -1,12 +1,12 @@

    - - {{getGroupBySetting($data->area->name.'_'.$data->part.'_group')->name}} + + {{getGroupBySetting($data->area->name.'_'.$data->part.'_group')?->name}}

    - {{getGroupBySetting($data->area->name.'_'.$data->part.'_group')->description}} + {{getGroupBySetting($data->area->name.'_'.$data->part.'_group')?->description}}

    @foreach( getGroupPostsBySetting($data->area->name.'_'.$data->part.'_group',4) as $post ) @@ -28,7 +28,7 @@ @endforeach
    diff --git a/resources/views/segments/posts/PostsIconSimple/PostsIconSimple.blade.php b/resources/views/segments/posts/PostsIconSimple/PostsIconSimple.blade.php index 2917c64..bf0bcf7 100755 --- a/resources/views/segments/posts/PostsIconSimple/PostsIconSimple.blade.php +++ b/resources/views/segments/posts/PostsIconSimple/PostsIconSimple.blade.php @@ -1,12 +1,12 @@

    - - {{getGroupBySetting($data->area->name.'_'.$data->part)->name}} + + {{getGroupBySetting($data->area->name.'_'.$data->part)?->name}}

    - {{getGroupBySetting($data->area->name.'_'.$data->part)->description}} + {{getGroupBySetting($data->area->name.'_'.$data->part)?->description}}

    @foreach(getGroupPostsBySetting($data->area->name.'_'.$data->part, getSetting($data->area->name.'_'.$data->part.'_limit')) as $post) @@ -20,7 +20,7 @@ {{$post->subtitle}}

    - + {{__("Read more")}}
    diff --git a/tests/Feature/ClientWebPagesTest.php b/tests/Feature/ClientWebPagesTest.php new file mode 100644 index 0000000..d404ff8 --- /dev/null +++ b/tests/Feature/ClientWebPagesTest.php @@ -0,0 +1,75 @@ +get(route('client.welcome')); + + $response->assertStatus(200); + } + + public function test_web_client_posts(): void + { + $response = $this->get(route('client.posts')); + + $response->assertStatus(200); + } + + public function test_web_client_products(): void + { + $response = $this->get(route('client.products')); + + $response->assertStatus(200); + } + + public function test_web_client_product(): void + { + + if (Product::count() == 0) { + Product::factory(1)->create(); + } + $response = $this->get(Product::first()->webUrl()); + $response->assertStatus(200); + } + + public function test_web_client_post(): void + { + + if (Post::count() == 0) { + Post::factory(1)->create(); + } + $response = $this->get(Post::first()->webUrl()); + $response->assertStatus(200); + } + + public function test_web_client_group(): void + { + + if (Group::count() == 0) { + Group::factory(1)->create(); + } + $response = $this->get(Group::first()->webUrl()); + $response->assertStatus(200); + } + public function test_web_client_category(): void + { + + if (Category::count() == 0) { + Category::factory(1)->create(); + } + $response = $this->get(Category::first()->webUrl()); + $response->assertStatus(200); + } +} diff --git a/tests/Feature/ExampleTest.php b/tests/Feature/ExampleTest.php index 8364a84..bf9ba1d 100644 --- a/tests/Feature/ExampleTest.php +++ b/tests/Feature/ExampleTest.php @@ -3,17 +3,22 @@ namespace Tests\Feature; // use Illuminate\Foundation\Testing\RefreshDatabase; +use Illuminate\Foundation\Testing\RefreshDatabase; +use Illuminate\Support\Facades\Log; use Tests\TestCase; class ExampleTest extends TestCase { + /** * A basic test example. */ public function test_the_application_returns_a_successful_response(): void { - $response = $this->get('/'); + + $response = $this->get(route('client.welcome')); $response->assertStatus(200); + } } diff --git a/tests/Unit/ExampleTest.php b/tests/Unit/ExampleTest.php deleted file mode 100644 index 5773b0c..0000000 --- a/tests/Unit/ExampleTest.php +++ /dev/null @@ -1,16 +0,0 @@ -assertTrue(true); - } -}