Recover blank campaign battle titles
This commit is contained in:
@@ -446,6 +446,7 @@ try {
|
||||
gold: 320,
|
||||
firstBattleReport: {
|
||||
battleId: 'first-battle-zhuo-commandery',
|
||||
battleTitle: ' ',
|
||||
outcome: 'victory',
|
||||
turnNumber: '4',
|
||||
rewardGold: '120',
|
||||
@@ -542,7 +543,7 @@ try {
|
||||
);
|
||||
assert(
|
||||
malformedReport.firstBattleReport?.battleId === 'first-battle-zhuo-commandery' &&
|
||||
malformedReport.firstBattleReport.battleTitle.length > 0 &&
|
||||
malformedReport.firstBattleReport.battleTitle === firstScenario.title &&
|
||||
malformedReport.firstBattleReport.turnNumber === 4 &&
|
||||
malformedReport.firstBattleReport.objectives.length === 24 &&
|
||||
malformedReport.firstBattleReport.objectives[0].rewardGold === 80 &&
|
||||
@@ -609,7 +610,7 @@ try {
|
||||
battleHistory: {
|
||||
'wrong-history-key': {
|
||||
battleId: 'first-battle-zhuo-commandery',
|
||||
battleTitle: 'Zhuo Commandery',
|
||||
battleTitle: ' ',
|
||||
outcome: 'victory',
|
||||
rewardGold: '120',
|
||||
itemRewards: ['Bean', 12, 'Bean'],
|
||||
@@ -724,6 +725,7 @@ try {
|
||||
assert(
|
||||
Object.keys(malformedHistory.battleHistory).length === 1 &&
|
||||
malformedHistory.battleHistory['first-battle-zhuo-commandery']?.rewardGold === 120 &&
|
||||
malformedHistory.battleHistory['first-battle-zhuo-commandery']?.battleTitle === firstScenario.title &&
|
||||
malformedHistory.battleHistory['wrong-history-key'] === undefined,
|
||||
`Expected malformed battle history entries to be filtered while valid settlements are keyed by battleId: ${JSON.stringify(malformedHistory)}`
|
||||
);
|
||||
|
||||
@@ -1008,12 +1008,12 @@ function normalizeCampaignBattleSettlement(value: unknown): CampaignBattleSettle
|
||||
|
||||
const settlement = value as Partial<CampaignBattleSettlement>;
|
||||
const battleId = typeof settlement.battleId === 'string' ? settlement.battleId : '';
|
||||
const battleTitle = normalizeDisplayString(settlement.battleTitle) || battleScenarios[battleId as BattleScenarioId]?.title;
|
||||
const completedAt = normalizeCampaignTimestamp(settlement.completedAt);
|
||||
if (
|
||||
battleId.length === 0 ||
|
||||
!(battleId in battleScenarios) ||
|
||||
typeof settlement.battleTitle !== 'string' ||
|
||||
settlement.battleTitle.length === 0 ||
|
||||
!battleTitle ||
|
||||
(settlement.outcome !== 'victory' && settlement.outcome !== 'defeat') ||
|
||||
!completedAt
|
||||
) {
|
||||
@@ -1022,7 +1022,7 @@ function normalizeCampaignBattleSettlement(value: unknown): CampaignBattleSettle
|
||||
|
||||
return {
|
||||
battleId,
|
||||
battleTitle: normalizeDisplayString(settlement.battleTitle),
|
||||
battleTitle,
|
||||
outcome: settlement.outcome,
|
||||
rewardGold: normalizeNonNegativeInteger(settlement.rewardGold),
|
||||
itemRewards: uniqueStrings(settlement.itemRewards),
|
||||
@@ -1198,17 +1198,14 @@ function normalizeFirstBattleReport(report: unknown): FirstBattleReport | undefi
|
||||
return undefined;
|
||||
}
|
||||
|
||||
const battleTitle =
|
||||
typeof report.battleTitle === 'string' && report.battleTitle.length > 0
|
||||
? report.battleTitle
|
||||
: battleScenarios[battleId as BattleScenarioId]?.title;
|
||||
const battleTitle = normalizeDisplayString(report.battleTitle) || battleScenarios[battleId as BattleScenarioId]?.title;
|
||||
if (!battleTitle) {
|
||||
return undefined;
|
||||
}
|
||||
|
||||
return {
|
||||
battleId,
|
||||
battleTitle: normalizeDisplayString(battleTitle),
|
||||
battleTitle,
|
||||
outcome: report.outcome,
|
||||
turnNumber: normalizeNonNegativeInteger(report.turnNumber),
|
||||
rewardGold: normalizeNonNegativeInteger(report.rewardGold),
|
||||
|
||||
Reference in New Issue
Block a user