mirror of
https://github.com/zadam/trilium.git
synced 2025-11-04 20:36:13 +01:00
wip
This commit is contained in:
70
spec/search/note_cache_mocking.js
Normal file
70
spec/search/note_cache_mocking.js
Normal file
@@ -0,0 +1,70 @@
|
||||
const Note = require('../../src/services/note_cache/entities/note.js');
|
||||
const Branch = require('../../src/services/note_cache/entities/branch.js');
|
||||
const Attribute = require('../../src/services/note_cache/entities/attribute.js');
|
||||
const noteCache = require('../../src/services/note_cache/note_cache.js');
|
||||
const randtoken = require('rand-token').generator({source: 'crypto'});
|
||||
|
||||
/** @return {Note} */
|
||||
function findNoteByTitle(searchResults, title) {
|
||||
return searchResults
|
||||
.map(sr => noteCache.notes[sr.noteId])
|
||||
.find(note => note.title === title);
|
||||
}
|
||||
|
||||
class NoteBuilder {
|
||||
constructor(note) {
|
||||
this.note = note;
|
||||
}
|
||||
|
||||
label(name, value = '', isInheritable = false) {
|
||||
new Attribute(noteCache, {
|
||||
attributeId: id(),
|
||||
noteId: this.note.noteId,
|
||||
type: 'label',
|
||||
isInheritable,
|
||||
name,
|
||||
value
|
||||
});
|
||||
|
||||
return this;
|
||||
}
|
||||
|
||||
relation(name, targetNote) {
|
||||
new Attribute(noteCache, {
|
||||
attributeId: id(),
|
||||
noteId: this.note.noteId,
|
||||
type: 'relation',
|
||||
name,
|
||||
value: targetNote.noteId
|
||||
});
|
||||
|
||||
return this;
|
||||
}
|
||||
|
||||
child(childNoteBuilder, prefix = "") {
|
||||
new Branch(noteCache, {
|
||||
branchId: id(),
|
||||
noteId: childNoteBuilder.note.noteId,
|
||||
parentNoteId: this.note.noteId,
|
||||
prefix
|
||||
});
|
||||
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
function id() {
|
||||
return randtoken.generate(10);
|
||||
}
|
||||
|
||||
function note(title) {
|
||||
const note = new Note(noteCache, {noteId: id(), title});
|
||||
|
||||
return new NoteBuilder(note);
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
NoteBuilder,
|
||||
findNoteByTitle,
|
||||
note
|
||||
};
|
||||
Reference in New Issue
Block a user