From 32d9002a58748f29096a6908f3e155d3c689b712 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=90=9D=E5=8D=9C?= Date: Tue, 17 Mar 2026 05:32:54 +0800 Subject: [PATCH] test(governance-ui): disable batch mark activated when sync_status missing --- ...ShouldDisableWhenSyncStatusMissingTest.php | 39 +++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 tests/Feature/AdminPlatformOrderIndexBatchMarkActivatedButtonShouldDisableWhenSyncStatusMissingTest.php diff --git a/tests/Feature/AdminPlatformOrderIndexBatchMarkActivatedButtonShouldDisableWhenSyncStatusMissingTest.php b/tests/Feature/AdminPlatformOrderIndexBatchMarkActivatedButtonShouldDisableWhenSyncStatusMissingTest.php new file mode 100644 index 0000000..da5584b --- /dev/null +++ b/tests/Feature/AdminPlatformOrderIndexBatchMarkActivatedButtonShouldDisableWhenSyncStatusMissingTest.php @@ -0,0 +1,39 @@ +seed(); + + $this->post('/admin/login', [ + 'email' => 'platform.admin@demo.local', + 'password' => 'Platform@123456', + ])->assertRedirect('/admin'); + } + + public function test_batch_mark_activated_button_should_disable_when_sync_status_missing_even_if_paid_pending(): void + { + $this->loginAsPlatformAdmin(); + + // 仅给 paid + pending,但不带 sync_status=unsynced。 + // 治理口径:批量仅标记为已生效必须锁定待生效集合(paid + pending + unsynced),避免把失败/已同步等异常单混入。 + $res = $this->get('/admin/platform-orders?payment_status=paid&status=pending'); + $res->assertOk(); + + $html = (string) $res->getContent(); + + $this->assertStringContainsString('批量仅标记为已生效(当前筛选范围)', $html); + $this->assertStringContainsString('data-role="batch-mark-activated-blocked-hint"', $html); + $this->assertStringContainsString('sync_status=unsynced', $html); + + $this->assertTrue(str_contains($html, 'type="submit" disabled') || str_contains($html, 'disabled="disabled"')); + } +}