seed(); $this->post('/admin/login', [ 'email' => 'platform.admin@demo.local', 'password' => 'Platform@123456', ])->assertRedirect('/admin'); } public function test_dashboard_recent_platform_orders_reconcile_mismatch_should_show_hint(): void { $this->loginAsPlatformAdmin(); $merchantId = (int) Merchant::query()->value('id'); $platformAdminId = (int) Admin::query()->where('email', 'platform.admin@demo.local')->value('id'); // 构造一条“已付 + 有回执证据,但回执总额 != paid_amount”的订单 $order = PlatformOrder::query()->create([ 'merchant_id' => $merchantId, 'plan_id' => null, 'site_subscription_id' => null, 'created_by_admin_id' => $platformAdminId ?: null, 'order_no' => 'PO_DASH_RECON_MISMATCH_0001', 'order_type' => 'new_purchase', 'status' => 'pending', 'payment_status' => 'paid', 'payable_amount' => 9, 'paid_amount' => 9, 'meta' => [ // 回执证据:存在 payment_summary.total_amount // 但与 paid_amount 不一致,触发 isReconcileMismatch() 'payment_summary' => [ 'total_amount' => 8, ], ], ]); $this->assertTrue($order->isReconcileMismatch(), '预期测试订单应命中 isReconcileMismatch()'); $res = $this->get('/admin'); $res->assertOk(); $res->assertSee('PO_DASH_RECON_MISMATCH_0001'); $res->assertSee('对账不一致', false); $url = '/admin/platform-orders?' . Arr::query([ 'reconcile_mismatch' => '1', 'back' => '/admin', ]); $res->assertSee($url, false); // 不应出现 &back=,避免回跳断链 $res->assertDontSee('&back=', false); } }