// Author: fruit.com.cn import 'dart:convert'; import 'package:flutter_test/flutter_test.dart'; import 'package:fruitshorts/core/data/remote/api_client.dart'; import 'package:fruitshorts/core/data/remote/catalog_api.dart'; import '../support/fake_http_adapter.dart'; void main() { test('should_request_search_with_keyword_and_paging_when_searching', () async { final adapter = FakeHttpAdapter( (options) async => FakeHttpResponse( jsonEncode({ 'code': 0, 'message': 'ok', 'data': { 'total': 1, 'list': [ { 'id': '2111012753262120962', 'title': 'Velvet Nights', 'synopsis': 'A city romance', 'cover': '/files/velvet.png', 'genre': 'Romance', 'totalEpisodes': 12, 'isHot': true, 'language': 'id', }, ], }, }), ), ); final api = CatalogApi( ApiClient(baseUrl: 'http://127.0.0.1:8081', adapter: adapter), ); final page = await api.search('velvet'); final request = adapter.requests.single; expect(request.uri.path, '/app/search'); expect(request.queryParameters['keyword'], 'velvet'); expect(request.queryParameters['pageIndex'], '1'); expect(request.queryParameters['pageSize'], '20'); expect(page.total, 1); expect(page.list.single.title, 'Velvet Nights'); expect(page.list.single.language, 'id'); }); }