Skip to content

Commit 387e247

Browse files
committed
Start setting up Dart tests
1 parent 491275f commit 387e247

File tree

3 files changed

+142
-0
lines changed

3 files changed

+142
-0
lines changed

dart/pubspec.lock

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,14 @@ packages:
4141
url: "https://pub.dev"
4242
source: hosted
4343
version: "2.1.2"
44+
bson:
45+
dependency: "direct main"
46+
description:
47+
name: bson
48+
sha256: "9b761248a3494fea594aecf5d6f369b5f04d7b082aa2b8c06579ade77f1a7e47"
49+
url: "https://pub.dev"
50+
source: hosted
51+
version: "5.0.6"
4452
cli_config:
4553
dependency: transitive
4654
description:
@@ -89,6 +97,14 @@ packages:
8997
url: "https://pub.dev"
9098
source: hosted
9199
version: "3.0.6"
100+
decimal:
101+
dependency: transitive
102+
description:
103+
name: decimal
104+
sha256: "28239b8b929c1bd8618702e6dbc96e2618cf99770bbe9cb040d6cf56a11e4ec3"
105+
url: "https://pub.dev"
106+
source: hosted
107+
version: "3.2.1"
92108
fake_async:
93109
dependency: "direct dev"
94110
description:
@@ -113,6 +129,14 @@ packages:
113129
url: "https://pub.dev"
114130
source: hosted
115131
version: "7.0.1"
132+
fixnum:
133+
dependency: transitive
134+
description:
135+
name: fixnum
136+
sha256: b6dc7065e46c974bc7c5f143080a6764ec7a4be6da1285ececdc37be96de53be
137+
url: "https://pub.dev"
138+
source: hosted
139+
version: "1.1.1"
116140
frontend_server_client:
117141
dependency: transitive
118142
description:
@@ -145,6 +169,14 @@ packages:
145169
url: "https://pub.dev"
146170
source: hosted
147171
version: "4.1.2"
172+
intl:
173+
dependency: transitive
174+
description:
175+
name: intl
176+
sha256: "3df61194eb431efc39c4ceba583b95633a403f46c9fd341e550ce0bfa50e9aa5"
177+
url: "https://pub.dev"
178+
source: hosted
179+
version: "0.20.2"
148180
io:
149181
dependency: transitive
150182
description:
@@ -209,6 +241,14 @@ packages:
209241
url: "https://pub.dev"
210242
source: hosted
211243
version: "2.2.0"
244+
packages_extensions:
245+
dependency: transitive
246+
description:
247+
name: packages_extensions
248+
sha256: "1fb328695a9828c80d275ce1650a2bb5947690070de082dfa1dfac7429378daf"
249+
url: "https://pub.dev"
250+
source: hosted
251+
version: "0.1.1"
212252
path:
213253
dependency: transitive
214254
description:
@@ -225,6 +265,14 @@ packages:
225265
url: "https://pub.dev"
226266
source: hosted
227267
version: "1.5.1"
268+
power_extensions:
269+
dependency: transitive
270+
description:
271+
name: power_extensions
272+
sha256: ad0e8b2420090d996fe8b7fd32cdf02b9b924b6d4fc0fb0b559ff6aa5e24d5b0
273+
url: "https://pub.dev"
274+
source: hosted
275+
version: "0.2.3"
228276
pub_semver:
229277
dependency: transitive
230278
description:
@@ -233,6 +281,14 @@ packages:
233281
url: "https://pub.dev"
234282
source: hosted
235283
version: "2.2.0"
284+
rational:
285+
dependency: transitive
286+
description:
287+
name: rational
288+
sha256: cb808fb6f1a839e6fc5f7d8cb3b0a10e1db48b3be102de73938c627f0b636336
289+
url: "https://pub.dev"
290+
source: hosted
291+
version: "2.2.3"
236292
shelf:
237293
dependency: transitive
238294
description:
@@ -289,6 +345,14 @@ packages:
289345
url: "https://pub.dev"
290346
source: hosted
291347
version: "1.10.1"
348+
sprintf:
349+
dependency: transitive
350+
description:
351+
name: sprintf
352+
sha256: "1fc9ffe69d4df602376b52949af107d8f5703b77cda567c4d7d86a0693120f23"
353+
url: "https://pub.dev"
354+
source: hosted
355+
version: "7.0.0"
292356
sqlite3:
293357
dependency: "direct main"
294358
description:
@@ -369,6 +433,14 @@ packages:
369433
url: "https://pub.dev"
370434
source: hosted
371435
version: "1.4.0"
436+
uuid:
437+
dependency: transitive
438+
description:
439+
name: uuid
440+
sha256: a5be9ef6618a7ac1e964353ef476418026db906c4facdedaa299b7a2e71690ff
441+
url: "https://pub.dev"
442+
source: hosted
443+
version: "4.5.1"
372444
vm_service:
373445
dependency: transitive
374446
description:

dart/pubspec.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ 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
1112
file: ^7.0.1

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)