* Use adaptive refresh indicators
* Add new message count indicator in chat
* Sync pubspec.lock
* Initial migration to material 3
* Restore default bottom sheet style
* Remove FrostyListTile and reset styles
* Use "Clear" button for all search history
* Add `require_trailing_commas` lint rule
* Exclude generated files from linter
* Use ListView for safe area support in bottom sheet
* Add initial dark theme
* Make sizing and units consistent
* Update onbaording spacings & copy
* Migrate to default material 3 buttons
* Add headers to chat details bottom sheet
* Simplify token log in method
* Use bottom sheet for account options
* Remove `AnimateScale` widget
* Tweak search paddings
* Update message spacing divisions
* Upgrade packages
* Update message spacing divisions
* Regenerate splash screens
* Update Inter & add google fonts
* Add initial material 3 themes
* Use adaptive alert dialogs
* Revert to oultined inputs
* Fix tooltip message
* Revert add google_fonts
* Improve themes and various styling
* Convert categories grid to list
* Tweak stream card thumbnail radii
* Tweak settings headers
* Left align floating snackbars
* Tweak search header padding
* Fix profile pics occasionally not rounded
* Use profile pic for settings button if logged in
* Redesign sleep timer
* Use divider theme and reduce thickness
* Use 0 letter spacing for tab bar titles
* Redesign category streams list
* Add border to tooltips
* Increase category card font weight
* Use outlined icon btton for chat user modal
* Reduce profile pic radius in search results
* Fix scrolll to top button safe area
* Add support for reply threads
* Reduce tooltip and snackbar border thickness
* Rebuild reply threads on new messages
* Upgrade packages (iOS)
* Reduce font weight for all chat alerts
* Use tabbars for pageview
* Add dividers everywhere
* Revert "Add dividers everywhere"
This reverts commit 5f0d349fdb.
* Remove fill from inputs
* Add dividers to settings
* Use segmented button for settings list
* Add scrollbar to lists with scrollcontroller
* Redesign badge/emote tooltip
* Remove outline from chat user modal buttons
* Remove divider from reply thread
* Use tap for chatters list and increase font weight
* Constrain emote tooltip width
47 lines
1.4 KiB
Dart
47 lines
1.4 KiB
Dart
import 'dart:convert';
|
|
|
|
import 'package:flutter_test/flutter_test.dart';
|
|
import 'package:frosty/models/stream.dart';
|
|
|
|
void main() {
|
|
test('Twitch stream should parse correctly', () {
|
|
const sampleStream = '''
|
|
{
|
|
"id":"43809710301",
|
|
"user_id":"71092938",
|
|
"user_login":"xqcow",
|
|
"user_name":"xQcOW",
|
|
"game_id":"508292",
|
|
"game_name":"Bloons TD 6",
|
|
"type":"live",
|
|
"title":"A shorter title...",
|
|
"viewer_count":50051,
|
|
"started_at":"2021-09-23T20:06:22Z",
|
|
"language":"en",
|
|
"thumbnail_url":"https://static-cdn.jtvnw.net/previews-ttv/live_user_xqcow-{width}x{height}.jpg",
|
|
"tag_ids":[
|
|
"e6bb8b34-4c28-4b5f-94ed-12c1ebf2d0e4",
|
|
"6ea6bca4-4712-4ab9-a906-e3336a9d8039",
|
|
"6606e54c-f92d-40f6-8257-74977889ccdd"
|
|
],
|
|
"is_mature":false
|
|
}
|
|
''';
|
|
|
|
final decoded = jsonDecode(sampleStream);
|
|
final stream = StreamTwitch.fromJson(decoded);
|
|
|
|
expect(stream.userId, '71092938');
|
|
expect(stream.userLogin, 'xqcow');
|
|
expect(stream.userName, 'xQcOW');
|
|
expect(stream.gameId, '508292');
|
|
expect(stream.gameName, 'Bloons TD 6');
|
|
expect(stream.title, 'A shorter title...');
|
|
expect(stream.viewerCount, 50051);
|
|
expect(stream.startedAt, '2021-09-23T20:06:22Z');
|
|
expect(
|
|
stream.thumbnailUrl,
|
|
'https://static-cdn.jtvnw.net/previews-ttv/live_user_xqcow-{width}x{height}.jpg',
|
|
);
|
|
});
|
|
}
|