assertSame(['order-data', 'refunds'], array_column($group['sections'], 'slug')); $this->assertNotContains('order-data', $slugs); $this->assertNotContains('refunds', $slugs); foreach ($group['sections'] as $section) { $this->assertSame($navigation[array_search($section['slug'], array_column($navigation, 'slug'), true)], $section); } } public function test_group_contains_only_authorized_sections_even_without_directory_permission(): void { $allowed = [['slug' => 'refunds', 'title' => '退款', 'pages' => [['slug' => 'non-jingxi-refund-data']]]]; $grouped = ShowInAdmin::groupBasicData($allowed); $this->assertSame($allowed, $grouped[0]['sections']); $this->assertSame([], ShowInAdmin::groupBasicData([])); } public function test_basic_data_is_an_empty_top_level_directory_before_invoice_management(): void { $navigation = require dirname(__DIR__, 3) . '/config/business_navigation.php'; $slugs = array_column($navigation, 'slug'); $index = array_search('basic-data', $slugs, true); $this->assertNotFalse($index); $this->assertSame('基础数据', $navigation[$index]['title']); $this->assertSame([], $navigation[$index]['pages']); $this->assertSame('invoice-management', $slugs[$index + 1]); $this->assertCount(1, array_keys($slugs, 'basic-data', true)); } }