mirror of
https://github.com/GitJournal/GitJournal.git
synced 2025-07-15 07:56:11 +08:00

And NotesFolderReadOnly to NotesFolder. It just makes more sense this way as we're now getting more and more different "types" of NotesFolders.
65 lines
1.7 KiB
Dart
65 lines
1.7 KiB
Dart
import 'dart:io';
|
|
|
|
import 'package:gitjournal/core/notes_cache.dart';
|
|
import 'package:gitjournal/core/notes_folder_fs.dart';
|
|
import 'package:path/path.dart' as p;
|
|
import 'package:test/test.dart';
|
|
|
|
void main() {
|
|
group('Notes Cache', () {
|
|
Directory tempDir;
|
|
String cacheFilePath;
|
|
var fileList = [
|
|
'/base/file.md',
|
|
'/base/d1/d2/file.md',
|
|
'/base/d5/file.md',
|
|
'/base/d1/file.md',
|
|
];
|
|
NotesCache cache;
|
|
|
|
setUp(() async {
|
|
tempDir = await Directory.systemTemp.createTemp('__notes_test__');
|
|
cacheFilePath = p.join(tempDir.path, "cache.raw");
|
|
cache = NotesCache(filePath: cacheFilePath, notesBasePath: '/base');
|
|
});
|
|
|
|
tearDown(() async {
|
|
tempDir.deleteSync(recursive: true);
|
|
});
|
|
|
|
test('Should load list correctly', () async {
|
|
var loadedList = await cache.loadFromDisk();
|
|
expect(loadedList.length, 0);
|
|
|
|
await cache.saveToDisk(fileList);
|
|
|
|
loadedList = await cache.loadFromDisk();
|
|
expect(loadedList, fileList);
|
|
});
|
|
|
|
test('Should create directory structure accurately', () async {
|
|
await cache.saveToDisk(fileList);
|
|
var rootFolder = NotesFolderFS(null, '/base');
|
|
await cache.load(rootFolder);
|
|
|
|
expect(rootFolder.subFolders.length, 2);
|
|
expect(rootFolder.notes.length, 1);
|
|
|
|
// d1
|
|
var folder = rootFolder.subFolders[0];
|
|
expect(folder.subFolders.length, 1);
|
|
expect(folder.notes.length, 1);
|
|
|
|
// d1/d2
|
|
folder = rootFolder.subFolders[0].subFolders[0];
|
|
expect(folder.subFolders.length, 0);
|
|
expect(folder.notes.length, 1);
|
|
|
|
// d6
|
|
folder = rootFolder.subFolders[1];
|
|
expect(folder.subFolders.length, 0);
|
|
expect(folder.notes.length, 1);
|
|
});
|
|
});
|
|
}
|