fix(小宝预警): 透传风险日报证据
This commit is contained in:
@@ -4,6 +4,7 @@ import { calcXiaobaoVersionRisk } from './xiaobao-risk';
|
||||
import type { DevTask } from './dev-task';
|
||||
import type { TestCase } from './test-case';
|
||||
import type { Bug } from './bug';
|
||||
import type { VersionDailyEvidence } from './xiaobao-risk-evidence';
|
||||
|
||||
function version(patch: any = {}) {
|
||||
return {
|
||||
@@ -104,3 +105,26 @@ test('calcXiaobaoVersionRisk marks blocked when critical Bug / blocked dev task
|
||||
assert.ok(risk.reasons.some((reason: { key: string }) => reason.key === 'critical_bug'));
|
||||
assert.ok(risk.reasons.some((reason: { key: string }) => reason.key === 'blocked_work'));
|
||||
});
|
||||
|
||||
test('calcXiaobaoVersionRisk preserves daily evidence on the returned risk object', () => {
|
||||
const dailyEvidence: VersionDailyEvidence = {
|
||||
todayDeliveries: [{ id: 'ev-1', title: '提交提测', summary: '完成核心流程', occurredAt: '2026-07-02T02:00:00.000Z' }],
|
||||
todayProgress: [],
|
||||
todayRisks: [],
|
||||
progressNotes: [],
|
||||
needsProgressItems: [],
|
||||
recentActivityCount: 1,
|
||||
lastActivityAt: '2026-07-02T02:00:00.000Z',
|
||||
};
|
||||
|
||||
const risk = calcXiaobaoVersionRisk({
|
||||
version: version(),
|
||||
devTasks: [],
|
||||
testCases: [],
|
||||
bugs: [],
|
||||
dailyEvidence,
|
||||
now: new Date('2026-07-02T01:00:00.000Z'),
|
||||
});
|
||||
|
||||
assert.equal(risk.dailyEvidence, dailyEvidence);
|
||||
});
|
||||
|
||||
@@ -3,6 +3,7 @@ import type { DevTask } from './dev-task';
|
||||
import { STATUS_PROGRESS, getEstimateHours } from './dev-task';
|
||||
import type { TestCase } from './test-case';
|
||||
import { getTestCaseEstimateHours } from './test-case';
|
||||
import type { VersionDailyEvidence } from './xiaobao-risk-evidence';
|
||||
import { WORK_HOURS, addWorkHours } from './work-hours';
|
||||
|
||||
export type XiaobaoRiskLevel = 'on_track' | 'attention' | 'at_risk' | 'likely_delayed' | 'blocked';
|
||||
@@ -55,6 +56,7 @@ export interface XiaobaoVersionRisk {
|
||||
remainingWorkHours: number;
|
||||
reasons: RiskReason[];
|
||||
silentRisks: SilentRisk[];
|
||||
dailyEvidence?: VersionDailyEvidence;
|
||||
signals: XiaobaoRiskSignals;
|
||||
trend: {
|
||||
direction: 'up' | 'down' | 'flat' | 'unknown';
|
||||
@@ -71,6 +73,7 @@ export interface CalcXiaobaoVersionRiskInput {
|
||||
now?: Date;
|
||||
snapshots?: Array<{ riskScore: number; createdAt?: string; date?: string }>;
|
||||
silentRisks?: SilentRisk[];
|
||||
dailyEvidence?: VersionDailyEvidence;
|
||||
recentActivityCount?: number;
|
||||
lastActivityAt?: string;
|
||||
}
|
||||
@@ -197,6 +200,7 @@ export function calcXiaobaoVersionRisk(input: CalcXiaobaoVersionRiskInput): Xiao
|
||||
remainingWorkHours,
|
||||
reasons,
|
||||
silentRisks,
|
||||
dailyEvidence: input.dailyEvidence,
|
||||
signals,
|
||||
trend,
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user