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>(
|
||||
future: future,
|
||||
builder: (context, snapshot) {
|
||||
final remoteBadges = _remoteBadges(snapshot.data);
|
||||
final badges = remoteBadges.isNotEmpty ? remoteBadges : _fallbackBadges;
|
||||
return _buildBadges(badges, stripHeight);
|
||||
if (snapshot.hasData) {
|
||||
return _buildBadges(_remoteBadges(snapshot.data), stripHeight);
|
||||
}
|
||||
return _buildBadges(_fallbackBadges, stripHeight);
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
@ -84,5 +84,31 @@ void main() {
|
||||
'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