mirror of
https://github.com/laurent22/joplin.git
synced 2025-01-11 18:24:43 +02:00
Fixed tests
This commit is contained in:
parent
6811ea1eb9
commit
5f94de0f24
@ -80,60 +80,6 @@ packages/app-cli/tests/HtmlToMd.js.map
|
|||||||
packages/app-cli/tests/MdToHtml.d.ts
|
packages/app-cli/tests/MdToHtml.d.ts
|
||||||
packages/app-cli/tests/MdToHtml.js
|
packages/app-cli/tests/MdToHtml.js
|
||||||
packages/app-cli/tests/MdToHtml.js.map
|
packages/app-cli/tests/MdToHtml.js.map
|
||||||
packages/app-cli/tests/Synchronizer.basics.d.ts
|
|
||||||
packages/app-cli/tests/Synchronizer.basics.js
|
|
||||||
packages/app-cli/tests/Synchronizer.basics.js.map
|
|
||||||
packages/app-cli/tests/Synchronizer.conflicts.d.ts
|
|
||||||
packages/app-cli/tests/Synchronizer.conflicts.js
|
|
||||||
packages/app-cli/tests/Synchronizer.conflicts.js.map
|
|
||||||
packages/app-cli/tests/Synchronizer.e2ee.d.ts
|
|
||||||
packages/app-cli/tests/Synchronizer.e2ee.js
|
|
||||||
packages/app-cli/tests/Synchronizer.e2ee.js.map
|
|
||||||
packages/app-cli/tests/Synchronizer.resources.d.ts
|
|
||||||
packages/app-cli/tests/Synchronizer.resources.js
|
|
||||||
packages/app-cli/tests/Synchronizer.resources.js.map
|
|
||||||
packages/app-cli/tests/Synchronizer.revisions.d.ts
|
|
||||||
packages/app-cli/tests/Synchronizer.revisions.js
|
|
||||||
packages/app-cli/tests/Synchronizer.revisions.js.map
|
|
||||||
packages/app-cli/tests/Synchronizer.sharing.d.ts
|
|
||||||
packages/app-cli/tests/Synchronizer.sharing.js
|
|
||||||
packages/app-cli/tests/Synchronizer.sharing.js.map
|
|
||||||
packages/app-cli/tests/Synchronizer.tags.d.ts
|
|
||||||
packages/app-cli/tests/Synchronizer.tags.js
|
|
||||||
packages/app-cli/tests/Synchronizer.tags.js.map
|
|
||||||
packages/app-cli/tests/Synchronizer.tools.d.ts
|
|
||||||
packages/app-cli/tests/Synchronizer.tools.js
|
|
||||||
packages/app-cli/tests/Synchronizer.tools.js.map
|
|
||||||
packages/app-cli/tests/dateTimeFormats.d.ts
|
|
||||||
packages/app-cli/tests/dateTimeFormats.js
|
|
||||||
packages/app-cli/tests/dateTimeFormats.js.map
|
|
||||||
packages/app-cli/tests/file-api-driver.d.ts
|
|
||||||
packages/app-cli/tests/file-api-driver.js
|
|
||||||
packages/app-cli/tests/file-api-driver.js.map
|
|
||||||
packages/app-cli/tests/fsDriver.d.ts
|
|
||||||
packages/app-cli/tests/fsDriver.js
|
|
||||||
packages/app-cli/tests/fsDriver.js.map
|
|
||||||
packages/app-cli/tests/htmlUtils.d.ts
|
|
||||||
packages/app-cli/tests/htmlUtils.js
|
|
||||||
packages/app-cli/tests/htmlUtils.js.map
|
|
||||||
packages/app-cli/tests/models_Folder.d.ts
|
|
||||||
packages/app-cli/tests/models_Folder.js
|
|
||||||
packages/app-cli/tests/models_Folder.js.map
|
|
||||||
packages/app-cli/tests/models_Folder.sharing.d.ts
|
|
||||||
packages/app-cli/tests/models_Folder.sharing.js
|
|
||||||
packages/app-cli/tests/models_Folder.sharing.js.map
|
|
||||||
packages/app-cli/tests/models_Note.d.ts
|
|
||||||
packages/app-cli/tests/models_Note.js
|
|
||||||
packages/app-cli/tests/models_Note.js.map
|
|
||||||
packages/app-cli/tests/models_Setting.d.ts
|
|
||||||
packages/app-cli/tests/models_Setting.js
|
|
||||||
packages/app-cli/tests/models_Setting.js.map
|
|
||||||
packages/app-cli/tests/models_Tag.d.ts
|
|
||||||
packages/app-cli/tests/models_Tag.js
|
|
||||||
packages/app-cli/tests/models_Tag.js.map
|
|
||||||
packages/app-cli/tests/registry.d.ts
|
|
||||||
packages/app-cli/tests/registry.js
|
|
||||||
packages/app-cli/tests/registry.js.map
|
|
||||||
packages/app-cli/tests/MdToMd.d.ts
|
packages/app-cli/tests/MdToMd.d.ts
|
||||||
packages/app-cli/tests/MdToMd.js
|
packages/app-cli/tests/MdToMd.js
|
||||||
packages/app-cli/tests/MdToMd.js.map
|
packages/app-cli/tests/MdToMd.js.map
|
||||||
|
54
.gitignore
vendored
54
.gitignore
vendored
@ -66,60 +66,6 @@ packages/app-cli/tests/HtmlToMd.js.map
|
|||||||
packages/app-cli/tests/MdToHtml.d.ts
|
packages/app-cli/tests/MdToHtml.d.ts
|
||||||
packages/app-cli/tests/MdToHtml.js
|
packages/app-cli/tests/MdToHtml.js
|
||||||
packages/app-cli/tests/MdToHtml.js.map
|
packages/app-cli/tests/MdToHtml.js.map
|
||||||
packages/app-cli/tests/Synchronizer.basics.d.ts
|
|
||||||
packages/app-cli/tests/Synchronizer.basics.js
|
|
||||||
packages/app-cli/tests/Synchronizer.basics.js.map
|
|
||||||
packages/app-cli/tests/Synchronizer.conflicts.d.ts
|
|
||||||
packages/app-cli/tests/Synchronizer.conflicts.js
|
|
||||||
packages/app-cli/tests/Synchronizer.conflicts.js.map
|
|
||||||
packages/app-cli/tests/Synchronizer.e2ee.d.ts
|
|
||||||
packages/app-cli/tests/Synchronizer.e2ee.js
|
|
||||||
packages/app-cli/tests/Synchronizer.e2ee.js.map
|
|
||||||
packages/app-cli/tests/Synchronizer.resources.d.ts
|
|
||||||
packages/app-cli/tests/Synchronizer.resources.js
|
|
||||||
packages/app-cli/tests/Synchronizer.resources.js.map
|
|
||||||
packages/app-cli/tests/Synchronizer.revisions.d.ts
|
|
||||||
packages/app-cli/tests/Synchronizer.revisions.js
|
|
||||||
packages/app-cli/tests/Synchronizer.revisions.js.map
|
|
||||||
packages/app-cli/tests/Synchronizer.sharing.d.ts
|
|
||||||
packages/app-cli/tests/Synchronizer.sharing.js
|
|
||||||
packages/app-cli/tests/Synchronizer.sharing.js.map
|
|
||||||
packages/app-cli/tests/Synchronizer.tags.d.ts
|
|
||||||
packages/app-cli/tests/Synchronizer.tags.js
|
|
||||||
packages/app-cli/tests/Synchronizer.tags.js.map
|
|
||||||
packages/app-cli/tests/Synchronizer.tools.d.ts
|
|
||||||
packages/app-cli/tests/Synchronizer.tools.js
|
|
||||||
packages/app-cli/tests/Synchronizer.tools.js.map
|
|
||||||
packages/app-cli/tests/dateTimeFormats.d.ts
|
|
||||||
packages/app-cli/tests/dateTimeFormats.js
|
|
||||||
packages/app-cli/tests/dateTimeFormats.js.map
|
|
||||||
packages/app-cli/tests/file-api-driver.d.ts
|
|
||||||
packages/app-cli/tests/file-api-driver.js
|
|
||||||
packages/app-cli/tests/file-api-driver.js.map
|
|
||||||
packages/app-cli/tests/fsDriver.d.ts
|
|
||||||
packages/app-cli/tests/fsDriver.js
|
|
||||||
packages/app-cli/tests/fsDriver.js.map
|
|
||||||
packages/app-cli/tests/htmlUtils.d.ts
|
|
||||||
packages/app-cli/tests/htmlUtils.js
|
|
||||||
packages/app-cli/tests/htmlUtils.js.map
|
|
||||||
packages/app-cli/tests/models_Folder.d.ts
|
|
||||||
packages/app-cli/tests/models_Folder.js
|
|
||||||
packages/app-cli/tests/models_Folder.js.map
|
|
||||||
packages/app-cli/tests/models_Folder.sharing.d.ts
|
|
||||||
packages/app-cli/tests/models_Folder.sharing.js
|
|
||||||
packages/app-cli/tests/models_Folder.sharing.js.map
|
|
||||||
packages/app-cli/tests/models_Note.d.ts
|
|
||||||
packages/app-cli/tests/models_Note.js
|
|
||||||
packages/app-cli/tests/models_Note.js.map
|
|
||||||
packages/app-cli/tests/models_Setting.d.ts
|
|
||||||
packages/app-cli/tests/models_Setting.js
|
|
||||||
packages/app-cli/tests/models_Setting.js.map
|
|
||||||
packages/app-cli/tests/models_Tag.d.ts
|
|
||||||
packages/app-cli/tests/models_Tag.js
|
|
||||||
packages/app-cli/tests/models_Tag.js.map
|
|
||||||
packages/app-cli/tests/registry.d.ts
|
|
||||||
packages/app-cli/tests/registry.js
|
|
||||||
packages/app-cli/tests/registry.js.map
|
|
||||||
packages/app-cli/tests/MdToMd.d.ts
|
packages/app-cli/tests/MdToMd.d.ts
|
||||||
packages/app-cli/tests/MdToMd.js
|
packages/app-cli/tests/MdToMd.js
|
||||||
packages/app-cli/tests/MdToMd.js.map
|
packages/app-cli/tests/MdToMd.js.map
|
||||||
|
@ -1,159 +0,0 @@
|
|||||||
import { setupDatabaseAndSynchronizer, switchClient, checkThrowAsync } from './test-utils.js';
|
|
||||||
import Folder from '@joplin/lib/models/Folder';
|
|
||||||
import Note from '@joplin/lib/models/Note';
|
|
||||||
import Tag from '@joplin/lib/models/Tag';
|
|
||||||
|
|
||||||
describe('models_Tag', function() {
|
|
||||||
|
|
||||||
beforeEach(async (done) => {
|
|
||||||
await setupDatabaseAndSynchronizer(1);
|
|
||||||
await switchClient(1);
|
|
||||||
done();
|
|
||||||
});
|
|
||||||
|
|
||||||
it('should add tags by title', (async () => {
|
|
||||||
const folder1 = await Folder.save({ title: 'folder1' });
|
|
||||||
const note1 = await Note.save({ title: 'ma note', parent_id: folder1.id });
|
|
||||||
|
|
||||||
await Tag.setNoteTagsByTitles(note1.id, ['un', 'deux']);
|
|
||||||
|
|
||||||
const noteTags = await Tag.tagsByNoteId(note1.id);
|
|
||||||
expect(noteTags.length).toBe(2);
|
|
||||||
}));
|
|
||||||
|
|
||||||
it('should not allow renaming tag to existing tag names', (async () => {
|
|
||||||
const folder1 = await Folder.save({ title: 'folder1' });
|
|
||||||
const note1 = await Note.save({ title: 'ma note', parent_id: folder1.id });
|
|
||||||
|
|
||||||
await Tag.setNoteTagsByTitles(note1.id, ['un', 'deux']);
|
|
||||||
|
|
||||||
const tagUn = await Tag.loadByTitle('un');
|
|
||||||
const hasThrown = await checkThrowAsync(async () => await Tag.save({ id: tagUn.id, title: 'deux' }, { userSideValidation: true }));
|
|
||||||
|
|
||||||
expect(hasThrown).toBe(true);
|
|
||||||
}));
|
|
||||||
|
|
||||||
it('should not return tags without notes', (async () => {
|
|
||||||
const folder1 = await Folder.save({ title: 'folder1' });
|
|
||||||
const note1 = await Note.save({ title: 'ma note', parent_id: folder1.id });
|
|
||||||
await Tag.setNoteTagsByTitles(note1.id, ['un']);
|
|
||||||
|
|
||||||
let tags = await Tag.allWithNotes();
|
|
||||||
expect(tags.length).toBe(1);
|
|
||||||
|
|
||||||
await Note.delete(note1.id);
|
|
||||||
|
|
||||||
tags = await Tag.allWithNotes();
|
|
||||||
expect(tags.length).toBe(0);
|
|
||||||
}));
|
|
||||||
|
|
||||||
it('should return tags with note counts', (async () => {
|
|
||||||
const folder1 = await Folder.save({ title: 'folder1' });
|
|
||||||
const note1 = await Note.save({ title: 'ma note', parent_id: folder1.id });
|
|
||||||
const note2 = await Note.save({ title: 'ma 2nd note', parent_id: folder1.id });
|
|
||||||
const todo1 = await Note.save({ title: 'todo 1', parent_id: folder1.id, is_todo: 1, todo_completed: 1590085027710 });
|
|
||||||
await Tag.setNoteTagsByTitles(note1.id, ['un']);
|
|
||||||
await Tag.setNoteTagsByTitles(note2.id, ['un']);
|
|
||||||
await Tag.setNoteTagsByTitles(todo1.id, ['un']);
|
|
||||||
|
|
||||||
let tags = await Tag.allWithNotes();
|
|
||||||
expect(tags.length).toBe(1);
|
|
||||||
expect(tags[0].note_count).toBe(3);
|
|
||||||
expect(tags[0].todo_completed_count).toBe(1);
|
|
||||||
|
|
||||||
await Note.delete(todo1.id);
|
|
||||||
|
|
||||||
tags = await Tag.allWithNotes();
|
|
||||||
expect(tags.length).toBe(1);
|
|
||||||
expect(tags[0].note_count).toBe(2);
|
|
||||||
|
|
||||||
await Note.delete(note1.id);
|
|
||||||
|
|
||||||
tags = await Tag.allWithNotes();
|
|
||||||
expect(tags.length).toBe(1);
|
|
||||||
expect(tags[0].note_count).toBe(1);
|
|
||||||
|
|
||||||
await Note.delete(note2.id);
|
|
||||||
|
|
||||||
tags = await Tag.allWithNotes();
|
|
||||||
expect(tags.length).toBe(0);
|
|
||||||
}));
|
|
||||||
|
|
||||||
it('should load individual tags with note count', (async () => {
|
|
||||||
const folder1 = await Folder.save({ title: 'folder1' });
|
|
||||||
const note1 = await Note.save({ title: 'ma note', parent_id: folder1.id });
|
|
||||||
const note2 = await Note.save({ title: 'ma 2nd note', parent_id: folder1.id });
|
|
||||||
const todo1 = await Note.save({ title: 'todo 2', parent_id: folder1.id, is_todo: 1, todo_completed: 1590085027710 });
|
|
||||||
const todo2 = await Note.save({ title: 'todo 2', parent_id: folder1.id, is_todo: 1 });
|
|
||||||
const tag = await Tag.save({ title: 'mytag' });
|
|
||||||
await Tag.addNote(tag.id, note1.id);
|
|
||||||
|
|
||||||
let tagWithCount = await Tag.loadWithCount(tag.id);
|
|
||||||
expect(tagWithCount.note_count).toBe(1);
|
|
||||||
|
|
||||||
await Tag.addNote(tag.id, note2.id);
|
|
||||||
tagWithCount = await Tag.loadWithCount(tag.id);
|
|
||||||
expect(tagWithCount.note_count).toBe(2);
|
|
||||||
|
|
||||||
await Tag.addNote(tag.id, todo1.id);
|
|
||||||
await Tag.addNote(tag.id, todo2.id);
|
|
||||||
tagWithCount = await Tag.loadWithCount(tag.id);
|
|
||||||
expect(tagWithCount.note_count).toBe(4);
|
|
||||||
expect(tagWithCount.todo_completed_count).toBe(1);
|
|
||||||
}));
|
|
||||||
|
|
||||||
it('should get common tags for set of notes', (async () => {
|
|
||||||
const folder1 = await Folder.save({ title: 'folder1' });
|
|
||||||
const taga = await Tag.save({ title: 'mytaga' });
|
|
||||||
const tagb = await Tag.save({ title: 'mytagb' });
|
|
||||||
const tagc = await Tag.save({ title: 'mytagc' });
|
|
||||||
await Tag.save({ title: 'mytagd' });
|
|
||||||
|
|
||||||
const note0 = await Note.save({ title: 'ma note 0', parent_id: folder1.id });
|
|
||||||
const note1 = await Note.save({ title: 'ma note 1', parent_id: folder1.id });
|
|
||||||
const note2 = await Note.save({ title: 'ma note 2', parent_id: folder1.id });
|
|
||||||
const note3 = await Note.save({ title: 'ma note 3', parent_id: folder1.id });
|
|
||||||
|
|
||||||
await Tag.addNote(taga.id, note1.id);
|
|
||||||
|
|
||||||
await Tag.addNote(taga.id, note2.id);
|
|
||||||
await Tag.addNote(tagb.id, note2.id);
|
|
||||||
|
|
||||||
await Tag.addNote(taga.id, note3.id);
|
|
||||||
await Tag.addNote(tagb.id, note3.id);
|
|
||||||
await Tag.addNote(tagc.id, note3.id);
|
|
||||||
|
|
||||||
let commonTags = await Tag.commonTagsByNoteIds(null);
|
|
||||||
expect(commonTags.length).toBe(0);
|
|
||||||
|
|
||||||
commonTags = await Tag.commonTagsByNoteIds(undefined);
|
|
||||||
expect(commonTags.length).toBe(0);
|
|
||||||
|
|
||||||
commonTags = await Tag.commonTagsByNoteIds([]);
|
|
||||||
expect(commonTags.length).toBe(0);
|
|
||||||
|
|
||||||
commonTags = await Tag.commonTagsByNoteIds([note0.id, note1.id, note2.id, note3.id]);
|
|
||||||
let commonTagIds = commonTags.map(t => t.id);
|
|
||||||
expect(commonTagIds.length).toBe(0);
|
|
||||||
|
|
||||||
commonTags = await Tag.commonTagsByNoteIds([note1.id, note2.id, note3.id]);
|
|
||||||
commonTagIds = commonTags.map(t => t.id);
|
|
||||||
expect(commonTagIds.length).toBe(1);
|
|
||||||
expect(commonTagIds.includes(taga.id)).toBe(true);
|
|
||||||
|
|
||||||
commonTags = await Tag.commonTagsByNoteIds([note2.id, note3.id]);
|
|
||||||
commonTagIds = commonTags.map(t => t.id);
|
|
||||||
expect(commonTagIds.length).toBe(2);
|
|
||||||
expect(commonTagIds.includes(taga.id)).toBe(true);
|
|
||||||
expect(commonTagIds.includes(tagb.id)).toBe(true);
|
|
||||||
|
|
||||||
commonTags = await Tag.commonTagsByNoteIds([note3.id]);
|
|
||||||
|
|
||||||
commonTagIds = commonTags.map(t => t.id);
|
|
||||||
expect(commonTags.length).toBe(3);
|
|
||||||
expect(commonTagIds.includes(taga.id)).toBe(true);
|
|
||||||
expect(commonTagIds.includes(tagb.id)).toBe(true);
|
|
||||||
expect(commonTagIds.includes(tagc.id)).toBe(true);
|
|
||||||
}));
|
|
||||||
|
|
||||||
});
|
|
@ -51,11 +51,20 @@ describe('models_Tag', function() {
|
|||||||
const folder1 = await Folder.save({ title: 'folder1' });
|
const folder1 = await Folder.save({ title: 'folder1' });
|
||||||
const note1 = await Note.save({ title: 'ma note', parent_id: folder1.id });
|
const note1 = await Note.save({ title: 'ma note', parent_id: folder1.id });
|
||||||
const note2 = await Note.save({ title: 'ma 2nd note', parent_id: folder1.id });
|
const note2 = await Note.save({ title: 'ma 2nd note', parent_id: folder1.id });
|
||||||
|
const todo1 = await Note.save({ title: 'todo 1', parent_id: folder1.id, is_todo: 1, todo_completed: 1590085027710 });
|
||||||
await Tag.setNoteTagsByTitles(note1.id, ['un']);
|
await Tag.setNoteTagsByTitles(note1.id, ['un']);
|
||||||
await Tag.setNoteTagsByTitles(note2.id, ['un']);
|
await Tag.setNoteTagsByTitles(note2.id, ['un']);
|
||||||
|
await Tag.setNoteTagsByTitles(todo1.id, ['un']);
|
||||||
|
|
||||||
let tags = await Tag.allWithNotes();
|
let tags = await Tag.allWithNotes();
|
||||||
expect(tags.length).toBe(1);
|
expect(tags.length).toBe(1);
|
||||||
|
expect(tags[0].note_count).toBe(3);
|
||||||
|
expect(tags[0].todo_completed_count).toBe(1);
|
||||||
|
|
||||||
|
await Note.delete(todo1.id);
|
||||||
|
|
||||||
|
tags = await Tag.allWithNotes();
|
||||||
|
expect(tags.length).toBe(1);
|
||||||
expect(tags[0].note_count).toBe(2);
|
expect(tags[0].note_count).toBe(2);
|
||||||
|
|
||||||
await Note.delete(note1.id);
|
await Note.delete(note1.id);
|
||||||
@ -74,6 +83,8 @@ describe('models_Tag', function() {
|
|||||||
const folder1 = await Folder.save({ title: 'folder1' });
|
const folder1 = await Folder.save({ title: 'folder1' });
|
||||||
const note1 = await Note.save({ title: 'ma note', parent_id: folder1.id });
|
const note1 = await Note.save({ title: 'ma note', parent_id: folder1.id });
|
||||||
const note2 = await Note.save({ title: 'ma 2nd note', parent_id: folder1.id });
|
const note2 = await Note.save({ title: 'ma 2nd note', parent_id: folder1.id });
|
||||||
|
const todo1 = await Note.save({ title: 'todo 2', parent_id: folder1.id, is_todo: 1, todo_completed: 1590085027710 });
|
||||||
|
const todo2 = await Note.save({ title: 'todo 2', parent_id: folder1.id, is_todo: 1 });
|
||||||
const tag = await Tag.save({ title: 'mytag' });
|
const tag = await Tag.save({ title: 'mytag' });
|
||||||
await Tag.addNote(tag.id, note1.id);
|
await Tag.addNote(tag.id, note1.id);
|
||||||
|
|
||||||
@ -83,6 +94,12 @@ describe('models_Tag', function() {
|
|||||||
await Tag.addNote(tag.id, note2.id);
|
await Tag.addNote(tag.id, note2.id);
|
||||||
tagWithCount = await Tag.loadWithCount(tag.id);
|
tagWithCount = await Tag.loadWithCount(tag.id);
|
||||||
expect(tagWithCount.note_count).toBe(2);
|
expect(tagWithCount.note_count).toBe(2);
|
||||||
|
|
||||||
|
await Tag.addNote(tag.id, todo1.id);
|
||||||
|
await Tag.addNote(tag.id, todo2.id);
|
||||||
|
tagWithCount = await Tag.loadWithCount(tag.id);
|
||||||
|
expect(tagWithCount.note_count).toBe(4);
|
||||||
|
expect(tagWithCount.todo_completed_count).toBe(1);
|
||||||
}));
|
}));
|
||||||
|
|
||||||
it('should get common tags for set of notes', (async () => {
|
it('should get common tags for set of notes', (async () => {
|
||||||
@ -131,6 +148,7 @@ describe('models_Tag', function() {
|
|||||||
expect(commonTagIds.includes(tagb.id)).toBe(true);
|
expect(commonTagIds.includes(tagb.id)).toBe(true);
|
||||||
|
|
||||||
commonTags = await Tag.commonTagsByNoteIds([note3.id]);
|
commonTags = await Tag.commonTagsByNoteIds([note3.id]);
|
||||||
|
|
||||||
commonTagIds = commonTags.map(t => t.id);
|
commonTagIds = commonTags.map(t => t.id);
|
||||||
expect(commonTags.length).toBe(3);
|
expect(commonTags.length).toBe(3);
|
||||||
expect(commonTagIds.includes(taga.id)).toBe(true);
|
expect(commonTagIds.includes(taga.id)).toBe(true);
|
||||||
|
Loading…
Reference in New Issue
Block a user