ci: Add tests for database on web
This commit is contained in:
parent
30cb81bc95
commit
8c98a0058a
|
|
@ -116,6 +116,22 @@ jobs:
|
||||||
dart pub get
|
dart pub get
|
||||||
dart run webdev build
|
dart run webdev build
|
||||||
|
|
||||||
|
database_web_tests:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
env:
|
||||||
|
NO_OLM: 1
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
- run: cat .github/workflows/versions.env >> $GITHUB_ENV
|
||||||
|
- uses: dart-lang/setup-dart@a57a6c04cf7d4840e88432aad6281d1e125f0d46
|
||||||
|
with:
|
||||||
|
sdk: ${{ env.dart_version }}
|
||||||
|
- uses: browser-actions/setup-chrome@v1
|
||||||
|
- name: Run tests
|
||||||
|
run: |
|
||||||
|
dart pub get
|
||||||
|
dart test test/box_test.dart --platform chrome
|
||||||
|
|
||||||
pub-dev-dry-run:
|
pub-dev-dry-run:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
|
|
|
||||||
|
|
@ -80,7 +80,7 @@ class BoxCollection with ZoneTransactionMixin {
|
||||||
return _db.close();
|
return _db.close();
|
||||||
}
|
}
|
||||||
|
|
||||||
static Future<void> delete(String path, [IdbFactory? factory]) =>
|
static Future<void> delete(String path, [dynamic factory]) =>
|
||||||
(factory ?? window.indexedDB!).deleteDatabase(path);
|
(factory ?? window.indexedDB!).deleteDatabase(path);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -67,7 +67,7 @@ class BoxCollection with ZoneTransactionMixin {
|
||||||
|
|
||||||
Future<void> close() => _db.close();
|
Future<void> close() => _db.close();
|
||||||
|
|
||||||
static Future<void> delete(String path, [DatabaseFactory? factory]) =>
|
static Future<void> delete(String path, [dynamic factory]) =>
|
||||||
(factory ?? databaseFactory).deleteDatabase(path);
|
(factory ?? databaseFactory).deleteDatabase(path);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,8 @@
|
||||||
import 'package:sqflite_common_ffi/sqflite_ffi.dart';
|
import 'package:sqflite_common_ffi/sqflite_ffi.dart';
|
||||||
import 'package:test/test.dart';
|
import 'package:test/test.dart';
|
||||||
|
|
||||||
import 'package:matrix/src/database/sqflite_box.dart';
|
import 'package:matrix/src/database/indexeddb_box.dart'
|
||||||
|
if (dart.library.io) 'package:matrix/src/database/sqflite_box.dart';
|
||||||
|
|
||||||
void main() {
|
void main() {
|
||||||
group('Box tests', () {
|
group('Box tests', () {
|
||||||
|
|
@ -9,14 +10,17 @@ void main() {
|
||||||
const Set<String> boxNames = {'cats', 'dogs'};
|
const Set<String> boxNames = {'cats', 'dogs'};
|
||||||
const data = {'name': 'Fluffy', 'age': 2};
|
const data = {'name': 'Fluffy', 'age': 2};
|
||||||
const data2 = {'name': 'Loki', 'age': 4};
|
const data2 = {'name': 'Loki', 'age': 4};
|
||||||
late Database db;
|
Database? db;
|
||||||
|
const isWeb = bool.fromEnvironment('dart.library.js_util');
|
||||||
setUp(() async {
|
setUp(() async {
|
||||||
db = await databaseFactoryFfi.openDatabase(':memory:');
|
if (!isWeb) {
|
||||||
|
db = await databaseFactoryFfi.openDatabase(':memory:');
|
||||||
|
}
|
||||||
collection = await BoxCollection.open(
|
collection = await BoxCollection.open(
|
||||||
'testbox',
|
'testbox',
|
||||||
boxNames,
|
boxNames,
|
||||||
sqfliteDatabase: db,
|
sqfliteDatabase: db,
|
||||||
sqfliteFactory: databaseFactoryFfi,
|
sqfliteFactory: isWeb ? null : databaseFactoryFfi,
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
@ -91,8 +95,18 @@ void main() {
|
||||||
expect(await box.get('loki'), null);
|
expect(await box.get('loki'), null);
|
||||||
});
|
});
|
||||||
|
|
||||||
test('Box.delete', () async {
|
test('Box.close', () async {
|
||||||
await BoxCollection.delete(db.path, databaseFactoryFfi);
|
await collection.close();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test(
|
||||||
|
'Box.delete',
|
||||||
|
() async {
|
||||||
|
await BoxCollection.delete(
|
||||||
|
db?.path ?? '',
|
||||||
|
isWeb ? null : databaseFactoryFfi,
|
||||||
|
);
|
||||||
|
},
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue