Files
GitJournal/test/note_storage_test.dart
Vishesh Handa 88552fe8e9 Revert "Workaround intl bug by harding 'en' locale"
This reverts commit 303192d9d575b26a77a00f7a62212f310ec1e329.
This reverts commit cd9d128b47ed523036f7ae1232ec7adcf04ed8a9.

GitJournal is used by non-English speakers (a lot in China and Russia)
and while we don't support those languages completely, we do support
them a little bit. I don't want to loose this functionality. It would be
better for us to fix the bug in intl.
2020-06-10 09:31:08 +02:00

74 lines
2.0 KiB
Dart

import 'dart:collection';
import 'dart:io';
import 'package:gitjournal/utils/datetime.dart';
import 'package:gitjournal/core/note.dart';
import 'package:gitjournal/core/md_yaml_doc.dart';
import 'package:path/path.dart' as p;
import 'package:test/test.dart';
void main() {
group('NoteStorage', () {
var notes = <Note>[];
String n1Path;
String n2Path;
Directory tempDir;
setUpAll(() async {
tempDir = await Directory.systemTemp.createTemp('__storage_test__');
var dt = DateTime(2019, 12, 2, 5, 4, 2);
// ignore: prefer_collection_literals
var props = LinkedHashMap<String, dynamic>();
props['created'] = toIso8601WithTimezone(dt);
n1Path = p.join(tempDir.path, "1.md");
n2Path = p.join(tempDir.path, "2.md");
var n1 = Note(null, n1Path);
n1.body = "test";
n1.created = dt;
var n2 = Note(null, n2Path);
n2.data = MdYamlDoc("test2", props);
notes = [n1, n2];
});
tearDownAll(() async {
tempDir.deleteSync(recursive: true);
});
test('Should persist and load Notes from disk', () async {
await Future.forEach(notes, (Note note) async {
await note.save();
});
expect(tempDir.listSync(recursive: true).length, 2);
expect(File(n1Path).existsSync(), isTrue);
expect(File(n2Path).existsSync(), isTrue);
var loadedNotes = <Note>[];
await Future.forEach(notes, (origNote) async {
var note = Note(null, origNote.filePath);
var r = await note.load();
expect(r, NoteLoadState.Loaded);
loadedNotes.add(note);
});
var sortFn = (Note n1, Note n2) => n1.filePath.compareTo(n2.filePath);
loadedNotes.sort(sortFn);
notes.sort(sortFn);
expect(loadedNotes, notes);
await Future.forEach(notes, (Note note) async {
await note.remove();
});
expect(tempDir.listSync(recursive: true).length, 0);
expect(File(n1Path).existsSync(), isFalse);
expect(File(n2Path).existsSync(), isFalse);
});
});
}