Files
GitJournal/test/notes_cache_test.dart
2021-05-19 12:09:45 +02:00

71 lines
1.8 KiB
Dart

import 'dart:io';
import 'package:path/path.dart' as p;
import 'package:test/test.dart';
import 'package:gitjournal/core/notes_cache.dart';
import 'package:gitjournal/core/notes_folder_fs.dart';
import 'package:gitjournal/settings.dart';
void main() {
group('Notes Cache', () {
late Directory tempDir;
String cacheFilePath;
var fileList = [
'/base/file.md',
'/base/d1/d2/file.md',
'/base/d5/file.md',
'/base/d1/file.md',
];
late NotesCache cache;
setUp(() async {
tempDir = await Directory.systemTemp.createTemp('__notes_test__');
cacheFilePath = p.join(tempDir.path, "cache.raw");
cache = NotesCache(
filePath: cacheFilePath,
notesBasePath: '/base',
settings: Settings(''),
);
});
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', Settings(''));
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);
});
});
}