CaiWuXiTong/tests/Feature/Settings/NavigationTest.php
renshen 0f39eb83a0 订单数据新增退款二级目录 (#30)
- 在“订单数据”下新增“退款”二级目录,菜单键为 order-data/refunds
- 复用现有 business.pages.show 通用页面与标准空状态
- 增加导航顺序、标题和页面路由测试

测试:容器内 www-data 执行 NavigationTest 与 PagesTest,11 个测试、166 个断言通过。
不涉及金额、权限、数据库、迁移、上游查询或生产部署。

Reviewed-on: http://git.1080p.hk/WuYongJie/CaiWuXiTong/pulls/30
2026-08-11 15:23:15 +08:00

72 lines
2.4 KiB
PHP

<?php
namespace Tests\Feature\Settings;
use App\Models\Auth\Permission;
use App\Models\Auth\Role;
use App\Utilities\BusinessNavigation;
use Tests\Feature\FeatureTestCase;
class NavigationTest extends FeatureTestCase
{
public function testAdminCanUpdateSidebarLabels()
{
$this->user->roles()->sync([
Role::where('name', 'admin')->firstOrFail()->id,
]);
$this->user->attachPermission(
Permission::where('name', 'read-admin-panel')->firstOrFail()
);
$this->loginAs()
->get(route('settings.navigation.manage'))
->assertOk()
->assertSeeText('侧边栏功能名称');
$this->patch(route('settings.navigation.save'), [
'section_titles' => [
'company-management' => '企业档案',
],
'page_titles' => [
'company-management' => [
'registration' => '企业设立',
],
],
])->assertOk();
$navigation = BusinessNavigation::all();
$companyRegistration = collect($navigation[0]['pages'])->firstWhere('slug', 'registration');
$this->assertSame('企业档案', $navigation[0]['title']);
$this->assertSame('企业设立', $companyRegistration['title']);
}
public function testOrderDataIsConfiguredBetweenInvoiceAndReceivablesMenus()
{
$navigation = BusinessNavigation::all();
$slugs = array_column($navigation, 'slug');
$invoiceIndex = array_search('invoice-management', $slugs, true);
$orderIndex = array_search('order-data', $slugs, true);
$receivablesIndex = array_search('store-receivables', $slugs, true);
$orderData = $navigation[$orderIndex] ?? null;
$this->assertNotFalse($invoiceIndex);
$this->assertNotFalse($orderIndex);
$this->assertNotFalse($receivablesIndex);
$this->assertGreaterThan($invoiceIndex, $orderIndex);
$this->assertLessThan($receivablesIndex, $orderIndex);
$this->assertSame('订单数据', $orderData['title']);
$this->assertSame(
['after-sales-expenses', 'promotion-expenses', 'refunds'],
array_column($orderData['pages'], 'slug')
);
$this->assertSame(
['订单售后费用明细', '商品推广费用明细', '退款'],
array_column($orderData['pages'], 'title')
);
}
}