fix(reports): separate readable categories from report content
Store readable category snapshots separately from details and evidence, validate report categories, and preserve context in admin displays and moderation actions. Widen report categories to TEXT and bump the schema to 3.2.0 without legacy data conversion. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
b2811cc248
commit
b45fd161f0
16 files changed
+797
-75
No files matched your search
@@ -82,6 +82,23 @@ test('PHP templates escape all appeal data and report evidence while preserving
|
||||
assert.doesNotMatch(html, /<script>alert\(/i);
|
||||
});
|
||||
|
||||
test('report details display readable categories separately from optional content and evidence', () => {
|
||||
const { html } = phpFixture();
|
||||
const detail = html.match(/<template id="aksrt-ban-detail-report-1">([\s\S]*?)<\/template>/)?.[1] || '';
|
||||
const category = detail.match(/<h3>举报分类<\/h3><div class="aksrt-ban-copy">([\s\S]*?)<\/div>/)?.[1];
|
||||
const content = detail.match(/<h3>举报内容与举证<\/h3><div class="aksrt-ban-copy">([\s\S]*?)<\/div>/)?.[1] || '';
|
||||
assert.equal(category, '版权投诉');
|
||||
assert.match(content, /Evidence/);
|
||||
assert.match(content, /https:\/\/evidence\.example\.test\/proof\.jpg/);
|
||||
assert.doesNotMatch(content, /版权投诉/);
|
||||
assert.match(html, /class="aksrt-ban-summary">版权投诉<\/div>/);
|
||||
|
||||
const categoryOnly = html.match(/<template id="aksrt-ban-detail-report-2">([\s\S]*?)<\/template>/)?.[1] || '';
|
||||
assert.match(categoryOnly, /<h3>举报分类<\/h3><div class="aksrt-ban-copy">人身攻击<\/div>/);
|
||||
assert.match(categoryOnly, /<h3>举报内容与举证<\/h3><div class="aksrt-ban-copy">未填写<\/div>/);
|
||||
assert.match(html, /class="aksrt-ban-summary">人身攻击<\/div>/);
|
||||
});
|
||||
|
||||
test('dedicated ban assets enqueue only on the matching native page', () => {
|
||||
const { assets } = phpFixture();
|
||||
|
||||
|
||||
Reference in new issue
Block a user