fix: keep empty scoped badge lists authoritative
This commit is contained in:
parent
c2b5ef9e16
commit
5a44ec0c6d
@ -108,9 +108,10 @@ class _SCUserBadgeStripState extends State<SCUserBadgeStrip> {
|
|||||||
return FutureBuilder<SCUserBadgeRes>(
|
return FutureBuilder<SCUserBadgeRes>(
|
||||||
future: future,
|
future: future,
|
||||||
builder: (context, snapshot) {
|
builder: (context, snapshot) {
|
||||||
final remoteBadges = _remoteBadges(snapshot.data);
|
if (snapshot.hasData) {
|
||||||
final badges = remoteBadges.isNotEmpty ? remoteBadges : _fallbackBadges;
|
return _buildBadges(_remoteBadges(snapshot.data), stripHeight);
|
||||||
return _buildBadges(badges, stripHeight);
|
}
|
||||||
|
return _buildBadges(_fallbackBadges, stripHeight);
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -84,5 +84,31 @@ void main() {
|
|||||||
'activity',
|
'activity',
|
||||||
]);
|
]);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test('does not expose long badges as short display badges', () {
|
||||||
|
final result = SCUserBadgeRes.fromJson({
|
||||||
|
'longBadges': [
|
||||||
|
{
|
||||||
|
'id': 'long-one',
|
||||||
|
'type': 'LONG',
|
||||||
|
'selectUrl': 'https://example.com/long-one.png',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'id': 'vip-one',
|
||||||
|
'sourceType': 'VIP',
|
||||||
|
'selectUrl': 'https://example.com/vip-one.png',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
'shortBadges': [],
|
||||||
|
});
|
||||||
|
|
||||||
|
expect(result.longDisplayBadges.map((badge) => badge.id), [
|
||||||
|
'long-one',
|
||||||
|
'vip-one',
|
||||||
|
]);
|
||||||
|
expect(result.shortDisplayBadges, isEmpty);
|
||||||
|
expect(result.displayBadges, isEmpty);
|
||||||
|
expect(result.honorWallBadges, isEmpty);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user