Skip to content

Commit 0d501c1

Browse files
committed
Start setting up Dart tests
1 parent c3950ab commit 0d501c1

File tree

3 files changed

+150
-0
lines changed

3 files changed

+150
-0
lines changed

dart/pubspec.lock

Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,22 @@ packages:
4646
url: "https://pub.dev"
4747
source: hosted
4848
version: "2.1.2"
49+
bson:
50+
dependency: "direct main"
51+
description:
52+
name: bson
53+
sha256: "9071b154b5cd96482c2e116b015e87acfdc8412630cc8f3aba60c539a8ef5442"
54+
url: "https://pub.dev"
55+
source: hosted
56+
version: "5.0.5"
57+
clock:
58+
dependency: transitive
59+
description:
60+
name: clock
61+
sha256: fddb70d9b5277016c77a80201021d40a2247104d9f4aa7bab7157b7e3f05b84b
62+
url: "https://pub.dev"
63+
source: hosted
64+
version: "1.1.2"
4965
collection:
5066
dependency: transitive
5167
description:
@@ -78,6 +94,14 @@ packages:
7894
url: "https://pub.dev"
7995
source: hosted
8096
version: "3.0.6"
97+
decimal:
98+
dependency: transitive
99+
description:
100+
name: decimal
101+
sha256: "28239b8b929c1bd8618702e6dbc96e2618cf99770bbe9cb040d6cf56a11e4ec3"
102+
url: "https://pub.dev"
103+
source: hosted
104+
version: "3.2.1"
81105
ffi:
82106
dependency: transitive
83107
description:
@@ -94,6 +118,14 @@ packages:
94118
url: "https://pub.dev"
95119
source: hosted
96120
version: "7.0.1"
121+
fixnum:
122+
dependency: transitive
123+
description:
124+
name: fixnum
125+
sha256: b6dc7065e46c974bc7c5f143080a6764ec7a4be6da1285ececdc37be96de53be
126+
url: "https://pub.dev"
127+
source: hosted
128+
version: "1.1.1"
97129
frontend_server_client:
98130
dependency: transitive
99131
description:
@@ -126,6 +158,14 @@ packages:
126158
url: "https://pub.dev"
127159
source: hosted
128160
version: "4.1.2"
161+
intl:
162+
dependency: transitive
163+
description:
164+
name: intl
165+
sha256: "3df61194eb431efc39c4ceba583b95633a403f46c9fd341e550ce0bfa50e9aa5"
166+
url: "https://pub.dev"
167+
source: hosted
168+
version: "0.20.2"
129169
io:
130170
dependency: transitive
131171
description:
@@ -198,6 +238,14 @@ packages:
198238
url: "https://pub.dev"
199239
source: hosted
200240
version: "2.1.1"
241+
packages_extensions:
242+
dependency: transitive
243+
description:
244+
name: packages_extensions
245+
sha256: "1fb328695a9828c80d275ce1650a2bb5947690070de082dfa1dfac7429378daf"
246+
url: "https://pub.dev"
247+
source: hosted
248+
version: "0.1.1"
201249
path:
202250
dependency: transitive
203251
description:
@@ -214,6 +262,14 @@ packages:
214262
url: "https://pub.dev"
215263
source: hosted
216264
version: "1.5.1"
265+
power_extensions:
266+
dependency: transitive
267+
description:
268+
name: power_extensions
269+
sha256: ad0e8b2420090d996fe8b7fd32cdf02b9b924b6d4fc0fb0b559ff6aa5e24d5b0
270+
url: "https://pub.dev"
271+
source: hosted
272+
version: "0.2.3"
217273
pub_semver:
218274
dependency: transitive
219275
description:
@@ -222,6 +278,14 @@ packages:
222278
url: "https://pub.dev"
223279
source: hosted
224280
version: "2.1.5"
281+
rational:
282+
dependency: transitive
283+
description:
284+
name: rational
285+
sha256: cb808fb6f1a839e6fc5f7d8cb3b0a10e1db48b3be102de73938c627f0b636336
286+
url: "https://pub.dev"
287+
source: hosted
288+
version: "2.2.3"
225289
shelf:
226290
dependency: transitive
227291
description:
@@ -278,6 +342,14 @@ packages:
278342
url: "https://pub.dev"
279343
source: hosted
280344
version: "1.10.1"
345+
sprintf:
346+
dependency: transitive
347+
description:
348+
name: sprintf
349+
sha256: "1fc9ffe69d4df602376b52949af107d8f5703b77cda567c4d7d86a0693120f23"
350+
url: "https://pub.dev"
351+
source: hosted
352+
version: "7.0.0"
281353
sqlite3:
282354
dependency: "direct main"
283355
description:
@@ -350,6 +422,14 @@ packages:
350422
url: "https://pub.dev"
351423
source: hosted
352424
version: "1.4.0"
425+
uuid:
426+
dependency: transitive
427+
description:
428+
name: uuid
429+
sha256: a5be9ef6618a7ac1e964353ef476418026db906c4facdedaa299b7a2e71690ff
430+
url: "https://pub.dev"
431+
source: hosted
432+
version: "4.5.1"
353433
vm_service:
354434
dependency: transitive
355435
description:

dart/pubspec.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,6 @@ environment:
66
sdk: ^3.4.0
77
dependencies:
88
sqlite3: ^2.4.5
9+
bson: ^5.0.5
910
dev_dependencies:
1011
test: ^1.25.0

dart/test/new_sync_test.dart

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
import 'dart:convert';
2+
3+
import 'package:bson/bson.dart';
4+
import 'package:sqlite3/common.dart';
5+
import 'package:test/test.dart';
6+
7+
import 'utils/native_test_utils.dart';
8+
9+
void main() {
10+
group('text lines', () {
11+
_syncTests(isBson: false);
12+
});
13+
14+
group('bson lines', () {
15+
_syncTests(isBson: true);
16+
});
17+
}
18+
19+
void _syncTests<T>({
20+
required bool isBson,
21+
}) {
22+
late CommonDatabase db;
23+
24+
setUp(() async {
25+
db = openTestDatabase()
26+
..select('select powersync_init();')
27+
..select('select powersync_replace_schema(?)', [json.encode(_schema)]);
28+
});
29+
30+
tearDown(() {
31+
db.dispose();
32+
});
33+
34+
List<Object?> invokeControl(String operation, Object? data) {
35+
final [row] =
36+
db.select('SELECT powersync_control(?, ?)', [operation, data]);
37+
return jsonDecode(row.columnAt(0));
38+
}
39+
40+
List<Object?> syncLine(Object? line) {
41+
if (isBson) {
42+
return invokeControl('line_binary', BsonCodec.serialize(line).byteList);
43+
} else {
44+
return invokeControl('line_text', jsonEncode(line));
45+
}
46+
}
47+
48+
test('starting stream', () {
49+
final result = invokeControl('start', null);
50+
});
51+
}
52+
53+
const _schema = {
54+
'tables': [
55+
{
56+
'name': 'items',
57+
'columns': [
58+
{'name': 'col', 'type': 'text'}
59+
],
60+
}
61+
]
62+
};
63+
64+
const _bucketDescriptions = {
65+
'prio0': {'priority': 0},
66+
'prio1': {'priority': 1},
67+
'prio2': {'priority': 2},
68+
'prio3': {'priority': 3},
69+
};

0 commit comments

Comments
 (0)