Channels represent any channel, offline or not. Streams represent live channels, or streams, and is what is being requested for in the API.
48 lines
1.7 KiB
Dart
48 lines
1.7 KiB
Dart
import 'dart:convert';
|
|
import 'package:flutter_test/flutter_test.dart';
|
|
import 'package:frosty/models/stream.dart';
|
|
|
|
void main() {
|
|
test('Twitch channel should parse', () {
|
|
const sampleChannel = '''
|
|
{
|
|
"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(sampleChannel);
|
|
final channel = Stream.fromJson(decoded);
|
|
|
|
expect(channel.id, '43809710301');
|
|
expect(channel.userId, '71092938');
|
|
expect(channel.userLogin, 'xqcow');
|
|
expect(channel.userName, 'xQcOW');
|
|
expect(channel.gameId, '508292');
|
|
expect(channel.gameName, 'Bloons TD 6');
|
|
expect(channel.type, 'live');
|
|
expect(channel.title, 'A shorter title...');
|
|
expect(channel.viewerCount, 50051);
|
|
expect(channel.startedAt, '2021-09-23T20:06:22Z');
|
|
expect(channel.language, 'en');
|
|
expect(channel.thumbnailUrl, 'https://static-cdn.jtvnw.net/previews-ttv/live_user_xqcow-{width}x{height}.jpg');
|
|
expect(channel.tagIds, ["e6bb8b34-4c28-4b5f-94ed-12c1ebf2d0e4", "6ea6bca4-4712-4ab9-a906-e3336a9d8039", "6606e54c-f92d-40f6-8257-74977889ccdd"]);
|
|
expect(channel.isMature, false);
|
|
});
|
|
}
|