1
0
mirror of https://github.com/laurent22/joplin.git synced 2025-11-06 09:19:22 +02:00

Fixed note edition

This commit is contained in:
Laurent Cozic
2017-07-23 15:11:44 +01:00
parent 1c3bf21539
commit d05c62f69f
18 changed files with 120 additions and 113 deletions

View File

@@ -2,7 +2,7 @@ require('source-map-support').install();
require('babel-plugin-transform-runtime');
import { time } from 'lib/time-utils.js';
import { setupDatabase, setupDatabaseAndSynchronizer, db, synchronizer, fileApi, sleep, clearDatabase, switchClient } from 'test-utils.js';
import { setupDatabase, setupDatabaseAndSynchronizer, db, synchronizer, fileApi, sleep, clearDatabase, switchClient, syncTargetId } from 'test-utils.js';
import { Folder } from 'lib/models/folder.js';
import { Note } from 'lib/models/note.js';
import { Tag } from 'lib/models/tag.js';
@@ -40,7 +40,11 @@ async function localItemsSameAsRemote(locals, expect) {
expect(!!remote).toBe(true);
if (!remote) continue;
expect(remote.updated_time).toBe(dbItem.updated_time);
if (syncTargetId() == Database.enumId('syncTarget', 'filesystem')) {
expect(remote.updated_time).toBe(Math.floor(dbItem.updated_time / 1000) * 1000);
} else {
expect(remote.updated_time).toBe(dbItem.updated_time);
}
let remoteContent = await fileApi().get(path);
remoteContent = dbItem.type_ == BaseModel.TYPE_NOTE ? await Note.unserialize(remoteContent) : await Folder.unserialize(remoteContent);
@@ -240,7 +244,7 @@ describe('Synchronizer', function() {
expect(files.length).toBe(1);
expect(files[0].path).toBe(Folder.systemPath(folder1));
let deletedItems = await BaseItem.deletedItems(syncTargetId);
let deletedItems = await BaseItem.deletedItems(syncTargetId());
expect(deletedItems.length).toBe(0);
done();
@@ -262,7 +266,7 @@ describe('Synchronizer', function() {
await synchronizer().start();
let items = await allItems();
expect(items.length).toBe(1);
let deletedItems = await BaseItem.deletedItems(syncTargetId);
let deletedItems = await BaseItem.deletedItems(syncTargetId());
expect(deletedItems.length).toBe(0);
done();
@@ -568,7 +572,7 @@ describe('Synchronizer', function() {
await synchronizer().start();
await Note.save({ id: n1.id, is_conflict: 1 });
await Note.delete(n1.id);
const deletedItems = await BaseItem.deletedItems(syncTargetId);
const deletedItems = await BaseItem.deletedItems(syncTargetId());
expect(deletedItems.length).toBe(0);

View File

@@ -13,6 +13,7 @@ import { BaseItem } from 'lib/models/base-item.js';
import { Synchronizer } from 'lib/synchronizer.js';
import { FileApi } from 'lib/file-api.js';
import { FileApiDriverMemory } from 'lib/file-api-driver-memory.js';
import { FileApiDriverLocal } from 'lib/file-api-driver-local.js';
import { FsDriverNode } from '../app/fs-driver-node.js';
import { time } from 'lib/time-utils.js';
@@ -28,6 +29,9 @@ Resource.fsDriver_ = fsDriver;
const logDir = __dirname + '/../tests/logs';
fs.mkdirpSync(logDir, 0o755);
const syncTarget = 'filesystem';
const syncDir = __dirname + '/../tests/sync';
const logger = new Logger();
logger.addTarget('file', { path: logDir + '/log.txt' });
logger.setLevel(Logger.LEVEL_DEBUG);
@@ -41,6 +45,11 @@ BaseItem.loadClass('NoteTag', NoteTag);
Setting.setConstant('appId', 'net.cozic.joplin-cli');
Setting.setConstant('appType', 'cli');
function syncTargetId() {
return JoplinDatabase.enumId('syncTarget', 'filesystem');
//return JoplinDatabase.enumId('syncTarget', 'memory');
}
function sleep(n) {
return new Promise((resolve, reject) => {
setTimeout(() => {
@@ -111,7 +120,12 @@ async function setupDatabaseAndSynchronizer(id = null) {
synchronizers_[id].setLogger(logger);
}
await fileApi().format();
if (syncTarget == 'filesystem') {
fs.removeSync(syncDir)
fs.mkdirpSync(syncDir, 0o755);
} else {
await fileApi().format();
}
}
function db(id = null) {
@@ -127,9 +141,17 @@ function synchronizer(id = null) {
function fileApi() {
if (fileApi_) return fileApi_;
fileApi_ = new FileApi('/root', new FileApiDriverMemory());
fileApi_.setLogger(logger);
return fileApi_;
if (syncTarget == 'filesystem') {
fs.removeSync(syncDir)
fs.mkdirpSync(syncDir, 0o755);
fileApi_ = new FileApi(syncDir, new FileApiDriverLocal());
fileApi_.setLogger(logger);
return fileApi_;
} else {
fileApi_ = new FileApi('/root', new FileApiDriverMemory());
fileApi_.setLogger(logger);
return fileApi_;
}
}
export { setupDatabase, setupDatabaseAndSynchronizer, db, synchronizer, fileApi, sleep, clearDatabase, switchClient };
export { setupDatabase, setupDatabaseAndSynchronizer, db, synchronizer, fileApi, sleep, clearDatabase, switchClient, syncTargetId };