Add operations overview and category usage tracking
This commit is contained in:
@@ -174,3 +174,14 @@ test('daily symlinks cannot disclose files outside DATA_DIR', async t => {
|
||||
assert.equal(response.status, 200); const text = await response.text(); assert.doesNotMatch(text, /OUTSIDE-SECRET/);
|
||||
assert.deepEqual(JSON.parse(text), { records: [], invalid_count: 1 });
|
||||
});
|
||||
|
||||
test('overview is authenticated and exposes only selected fields', async t => {
|
||||
const { directory, request, login } = await fixture(t);
|
||||
await writeFile(path.join(directory, 'ops-strategy.json'), JSON.stringify({ mission:'星栖', private:'SECRET' }));
|
||||
await writeFile(path.join(directory, 'market-latest.json'), JSON.stringify({ observed_at:'2026-11-04', ranking:[{bvid:'https://evil.test',title:'榜单',views:1,private:'SECRET'}],account_videos:[] }));
|
||||
assert.equal((await request('/api/overview')).status, 401);
|
||||
const cookie = (await login()).headers.get('set-cookie').split(';')[0];
|
||||
const response = await request('/api/overview', { headers:{cookie} }); const text = await response.text();
|
||||
assert.doesNotMatch(text, /SECRET|evil/); const data = JSON.parse(text);
|
||||
assert.equal(data.strategy.mission, '星栖'); assert.equal(data.market.ranking[0].bvid, '');
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user