assertStringContainsString( "['slug' => 'period-balance-reconciliation', 'title' => '期末余额双源核对']", $navigation, ); $this->assertLessThan( strpos($navigation, "['slug' => 'period-balance-reconciliation', 'title' => '期末余额双源核对']"), strpos($navigation, "['slug' => 'store-receiving-bills', 'title' => '店铺收款账户账单'"), ); } public function test_page_mounts_the_vue_component_and_reads_the_reconciliation_endpoint(): void { $root = dirname(__DIR__, 3); $pagesSource = file_get_contents($root . '/resources/assets/js/views/business/pages.js'); $blade = file_get_contents($root . '/resources/views/business/pages/show.blade.php'); $component = file_get_contents($root . '/resources/assets/js/components/business/PeriodBalanceReconciliation.vue'); $this->assertStringContainsString('PeriodBalanceReconciliation.vue', $pagesSource); $this->assertStringContainsString("context.page === 'period-balance-reconciliation'", $pagesSource); $this->assertStringContainsString("['store-receiving-bills', 'period-balance-reconciliation']", $blade); $this->assertStringContainsString('${this.apiBase}/reconciliation', $component); $this->assertStringContainsString('${this.apiBase}/reconciliation/trend', $component); $this->assertStringContainsString('趋势加载中…', $component); $this->assertStringContainsString('淘系支付宝账户', $component); $this->assertStringContainsString('拼多多账户', $component); $this->assertStringContainsString('抖音账户', $component); $this->assertStringContainsString('其他平台暂未接入', $component); $this->assertStringContainsString('取数时间待核查', $component); $this->assertStringContainsString('200', $component); } }