add feedback scopes, revoke and precision metrics
Feedback rules now support value/field/entity/stream scope, require expiry for broad suppressions, and can be revoked individually. Adds an active-rules panel, detector precision metrics, and diagnostics.
This commit is contained in:
@@ -76,6 +76,22 @@ class DashboardTests(unittest.TestCase):
|
||||
self.assertIn("/api/feedback/clear", source)
|
||||
self.assertIn("/api/review-state/clear", source)
|
||||
|
||||
def test_dashboard_exposes_feedback_revoke_endpoint(self):
|
||||
source = inspect.getsource(dashboard)
|
||||
self.assertIn("/api/feedback/revoke", source)
|
||||
self.assertIn(".revoke(", source)
|
||||
|
||||
def test_dashboard_has_active_feedback_rules_panel(self):
|
||||
self.assertIn('id="feedbackRules"', HTML)
|
||||
self.assertIn("revoke-feedback-rule", HTML)
|
||||
self.assertIn('id="feedbackRuleSummary"', HTML)
|
||||
|
||||
def test_dashboard_has_scoped_review_form(self):
|
||||
self.assertIn('id="reviewScope"', HTML)
|
||||
self.assertIn('value="entity"', HTML)
|
||||
self.assertIn('value="stream"', HTML)
|
||||
self.assertIn("Broad-scope rules must expire", HTML)
|
||||
|
||||
def test_dashboard_does_not_clear_streams_when_picker_is_unloaded(self):
|
||||
self.assertIn("const streamValues = Object.values(window.streamSelection || {})", HTML)
|
||||
self.assertIn("if (streamValues.length)", HTML)
|
||||
|
||||
Reference in New Issue
Block a user