Skip to content

Commit

Permalink
finish unencrypted indexed db tests
Browse files Browse the repository at this point in the history
  • Loading branch information
danReynolds committed Nov 8, 2024
1 parent 717f012 commit 9d36f35
Show file tree
Hide file tree
Showing 11 changed files with 148 additions and 22 deletions.
3 changes: 0 additions & 3 deletions .vscode/launch.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,4 @@
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
Expand Down
6 changes: 3 additions & 3 deletions .vscode/tasks.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
"label": "Core tests",
"type": "shell",
"command": "flutter",
"args": ["test", "test/loon_test.dart", "test/store", "test/persistor/persistor_test.dart"],
"args": ["test", "test/core"],
"group": {
"kind": "build",
"isDefault": true
Expand All @@ -19,7 +19,7 @@
"label": "Native tests",
"type": "shell",
"command": "flutter",
"args": ["test", "test/persistor/file_persistor_test.dart", "test/persistor/encrypted_file_persistor_test.dart"],
"args": ["test", "test/native"],
"group": {
"kind": "build",
"isDefault": true
Expand All @@ -33,7 +33,7 @@
"command": "flutter",
"args": [
"test",
"test/persistor/indexed_db_persistor_test.dart",
"test/web",
"--platform",
"chrome"
],
Expand Down
8 changes: 4 additions & 4 deletions test/loon_test.dart → test/core/loon_test.dart
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
import 'package:flutter_test/flutter_test.dart';
import 'package:loon/loon.dart';

import 'matchers/document_snapshot.dart';
import 'models/test_persistor.dart';
import 'models/test_user_model.dart';
import 'utils.dart';
import '../matchers/document_snapshot.dart';
import '../models/test_persistor.dart';
import '../models/test_user_model.dart';
import '../utils.dart';

void main() {
group(
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import 'package:flutter_test/flutter_test.dart';
import 'package:loon/loon.dart';

import '../models/test_persistor.dart';
import '../models/test_user_model.dart';
import '../../models/test_persistor.dart';
import '../../models/test_user_model.dart';

void main() {
tearDown(() {
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
4 changes: 4 additions & 0 deletions test/models/test_indexed_db_persistor.dart
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,10 @@ class TestIndexedDBPersistor extends IndexedDBPersistor {
return objectStore.get(storeName.toJS);
});

if (result == null) {
return null;
}

final value = result[IndexedDBPersistor.valuePath];

return jsonDecode(encrypted ? encrypter.decrypt(value) : value);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@ import 'dart:convert';
import 'dart:io';
import 'package:flutter_test/flutter_test.dart';
import 'package:loon/loon.dart';
import '../models/test_file_persistor.dart';
import '../models/test_user_model.dart';
import '../utils.dart';
import '../../models/test_file_persistor.dart';
import '../../models/test_user_model.dart';
import '../../utils.dart';

// ignore: depend_on_referenced_packages
import 'package:path_provider_platform_interface/path_provider_platform_interface.dart';
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,10 @@ import 'package:path_provider_platform_interface/path_provider_platform_interfac
// ignore: depend_on_referenced_packages
import 'package:plugin_platform_interface/plugin_platform_interface.dart';

import '../models/test_file_persistor.dart';
import '../models/test_large_model.dart';
import '../models/test_user_model.dart';
import '../utils.dart';
import '../../models/test_file_persistor.dart';
import '../../models/test_large_model.dart';
import '../../models/test_user_model.dart';
import '../../utils.dart';

late Directory testDirectory;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
import 'package:flutter_test/flutter_test.dart';
import 'package:loon/loon.dart';

import '../models/test_indexed_db_persistor.dart';
import '../models/test_user_model.dart';
import '../utils.dart';
import '../../models/test_indexed_db_persistor.dart';
import '../../models/test_user_model.dart';
import '../../utils.dart';

void main() {
TestWidgetsFlutterBinding.ensureInitialized();
Expand Down Expand Up @@ -222,5 +222,130 @@ void main() {
);
});
});

group(
'clear',
() {
test(
"Deletes collections and their subcollections",
() async {
final userCollection = Loon.collection(
'users',
fromJson: TestUserModel.fromJson,
toJson: (user) => user.toJson(),
);
final friendsCollection = userCollection.doc('1').subcollection(
'friends',
fromJson: TestUserModel.fromJson,
toJson: (user) => user.toJson(),
persistorSettings: PersistorSettings(
key: Persistor.key('friends'),
),
);

userCollection.doc('1').create(TestUserModel('User 1'));
userCollection.doc('2').create(TestUserModel('User 2'));
friendsCollection.doc('1').create(TestUserModel('Friend 1'));

await completer.onSync;

expect(
await persistor.getStore('__store__'),
{
"": {
"users": {
"__values": {
"1": {'name': 'User 1'},
"2": {'name': 'User 2'},
}
}
}
},
);

expect(
await persistor.getStore('friends'),
{
"users__1__friends": {
"users": {
"1": {
"friends": {
"__values": {
"1": {'name': 'Friend 1'},
}
}
}
}
}
},
);

userCollection.delete();

await completer.onSync;

expect(
await persistor.getStore('__store__'),
null,
);

expect(
await persistor.getStore('friends'),
null,
);
},
);
},
);

group(
'clearAll',
() {
test(
"Deletes all file data stores",
() async {
final userCollection = Loon.collection(
'users',
fromJson: TestUserModel.fromJson,
toJson: (user) => user.toJson(),
persistorSettings: PersistorSettings(
key: Persistor.key('users'),
),
);

userCollection.doc('1').create(TestUserModel('User 1'));
userCollection.doc('2').create(TestUserModel('User 2'));

await completer.onSync;

expect(await persistor.getStore('users'), {
"users": {
"users": {
"__values": {
"1": {'name': 'User 1'},
"2": {'name': 'User 2'},
}
}
}
});
expect(await persistor.getStore('__resolver__'), {
"__refs": {
Persistor.defaultKey.value: 1,
"users": 1,
},
"__values": {
ValueStore.root: Persistor.defaultKey.value,
"users": "users",
},
});

await Loon.clearAll();

expect(await persistor.getStore('users'), null);
expect(await persistor.getStore('__resolver__'), null);
},
);
},
);
});
}

0 comments on commit 9d36f35

Please sign in to comment.