-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdatasource.code-snippets
More file actions
86 lines (85 loc) · 2.87 KB
/
datasource.code-snippets
File metadata and controls
86 lines (85 loc) · 2.87 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
{
"DataSource": {
"scope": "dart",
"prefix": "dataSource",
"body": [
"abstract class ${1:${1:${TM_FILENAME_BASE/(^((?!.datasource).)*)(.*)/${1:/pascalcase}/g}}}DataSource {",
" Future<${2:dynamic}> ${3:function}();",
"}",
""
],
"description": "DataSource abstract class"
},
"DataSource Impl": {
"scope": "dart",
"prefix": "dataSourceImpl",
"body": [
"import 'package:foo/src/api/api.abstract.dart';",
"import '${TM_FILENAME_BASE/(^((?!_impl).)*)(.*)/$1/g}.datasource.dart';",
"",
"class ${1:${TM_FILENAME_BASE/(^((?!_impl).)*)(.*)/${1:/pascalcase}/g}}DataSourceImpl implements $1DataSource {",
" final DioClient api;",
"",
" const $1DataSourceImpl(this.api);",
"}",
""
],
"description": "DataSourceImpl class"
},
"DataSourceTest": {
"scope": "dart",
"prefix": "datasourceTest",
"body": [
"import 'package:flutter_test/flutter_test.dart';",
"import 'package:foo/src/api/api.abstract.dart';",
"import 'package:foo/src/api/exceptions.dart';",
"import 'package:foo/src/modules/${9:${TM_FILENAME_BASE/(^((?!.datasource_test).)*)(.*)/${1:/snakecase}/g}}/data/datasource/$9_impl.datasource.dart';",
"import 'package:foo/src/modules/$9/data/datasource/$9.datasource.dart';",
"",
"import '../../../../mocks/api_mock_utils.dart';",
"import '../../../../mocks/mocks.dart';",
"",
"main() {",
" DioClient dioClientMock;",
" ${8:${TM_FILENAME_BASE/(^((?!.datasource_test).)*)(.*)/${1:/pascalcase}/g}}DataSource dataSource;",
"",
" setUp(() {",
" dioClientMock = DioClientMock();",
" dataSource = $8DataSourceImpl(dioClientMock);",
" });",
"",
" void mock$1For(DioClientMock mock, {int responseCode = 200}) {",
" final _when = when(mock.$3(",
" $8DataSourceImpl.$2,",
" ${4:false},",
" ));",
" if (responseCode == 200) {",
" _when.thenAnswer((_) async => ApiResponse(code: responseCode, data: ${7:{}}));",
" } else {",
" _when.thenThrow(APIBadRequestException());",
" }",
" }",
"",
" group('$8DataSource', () {",
" group('$6 function', () {",
" test('Should return a successful ApiResponse', () async {",
" mock$1For(dioClientMock, responseCode: 200);",
"",
" final res = await dataSource.$6();",
"",
" expect(res, isA<ApiResponse>());",
" });",
"",
" test('Should throws an api error', () async {",
" mock$1For(dioClientMock, responseCode: 400);",
"",
" expect(() => dataSource.$6(), throwsA(isA<APIBadRequestException>()));",
" });",
" });",
" });",
"}",
""
],
"description": "DataSource Test"
}
}