Ask for detailed news outlines and keep checked severities

Outlines move to geometry version 4: the news server now follows Natural
Earth's own border vertices instead of a coarse grid, and the new version is a
new cache entry. A severity a reviewer set (severityBy 'label') is kept as such
instead of reading as the rules'.
This commit is contained in:
Denis Groshev committed 2026-11-06 00:45:27 +01:00
1 parent 60fad38c3f
commit ee3593cfbd
4 files changed
+21 -5

No files matched your search

+14
View File
@@ -600,3 +600,17 @@ test('the hotspots answer carries the window it was counted over', () => {
null,
);
});
test('a checked severity keeps saying who set it', () => {
const page = normalizeFeedPayload({
reports: ['label', 'model', 'guess'].map((by, i) => ({
...report(`r${i}`, '2026-10-28T09:00:00Z'),
severity: 2,
severityBy: by,
})),
});
assert.deepEqual(
page.reports.map((r) => r.severityBy),
['label', 'model', 'rules'],
);
});
+3 -1
View File
@@ -253,7 +253,9 @@ function normalizeReport(raw) {
? raw.relevance
: 'related',
severity: severity(raw.severity),
severityBy: raw.severityBy === 'model' ? 'model' : 'rules',
severityBy: ['model', 'label'].includes(raw.severityBy)
? raw.severityBy
: 'rules',
claim:
raw.claim && typeof raw.claim === 'object'
? { by: text(raw.claim.by, 80) }
+1 -1
View File
@@ -13,7 +13,7 @@ const msg = (text) => text;
const MAX_BYTES = 4 * 1024 * 1024;
const BASE_PATH = '/api/news';
// The outline geometry version the client draws (disputed areas included).
const OUTLINE_VERSION = '3';
const OUTLINE_VERSION = '4';
/** The three read routes the news layer calls, for a host's path allowlist. */
export const NEWS_API_PATHS = Object.freeze([
+3 -3
View File
@@ -58,8 +58,8 @@ test('reads validated hotspots, feed and outlines from the same-origin routes',
[
'/api/news/hotspots',
'/api/news/feed?hotspot=all&limit=60&today=1',
'/api/news/outline?hotspot=ua&v=3',
'/api/news/outline?country=SD&v=3',
'/api/news/outline?hotspot=ua&v=4',
'/api/news/outline?country=SD&v=4',
],
);
for (const { url, init } of calls) {
@@ -166,7 +166,7 @@ test('the host allowlist admits the client routes and refuses anything else', ()
'/api/news/air-alerts',
'/api/news/outline?hotspot=ua',
'/api/news/outline?hotspot=ua&v=2',
'/api/news/outline?country=ukraine&v=3',
'/api/news/outline?country=ukraine&v=4',
])
assert.equal(allowed(path), false, path);
});