logseq import plugin
This commit is contained in:
1 parent
3ae84ccdd7
commit
5af49655d6
11 files changed
+301
-193
No files matched your search
@@ -9,17 +9,22 @@
|
||||
|
||||
const hyprcrd = window.hyprcrd;
|
||||
|
||||
// Cache-bust the test modules so edits to test files are picked up without
|
||||
// a hard refresh. The browser treats each unique URL as a distinct module,
|
||||
// so a fresh query string on each page load forces re-import.
|
||||
const V = '?v=' + Date.now();
|
||||
|
||||
// Auto-load if ?test in query string
|
||||
if (new URLSearchParams(location.search).has('test')) {
|
||||
import('./tests.js');
|
||||
import('./tests.js' + V);
|
||||
}
|
||||
|
||||
// Keyboard shortcut: Ctrl+Shift+T → open runner
|
||||
document.addEventListener('keydown', e => {
|
||||
if (e.ctrlKey && e.shiftKey && e.key === 'T') {
|
||||
e.preventDefault();
|
||||
import('./tests.js').then(() =>
|
||||
import('./runner.js').then(m => m.open?.())
|
||||
import('./tests.js' + V).then(() =>
|
||||
import('./runner.js' + V).then(m => m.open?.())
|
||||
);
|
||||
}
|
||||
});
|
||||
|
||||
@@ -13,7 +13,7 @@ describe('App Shell', () => {
|
||||
});
|
||||
|
||||
it('footer buttons', () => {
|
||||
for (const id of ['settings-btn', 'export-btn', 'import-btn', 'logout-btn', 'export-md-btn', 'import-logseq-btn']) {
|
||||
for (const id of ['settings-btn', 'export-btn', 'import-btn', 'logout-btn', 'export-md-btn']) {
|
||||
expect($(`#${id}`)).toExist();
|
||||
}
|
||||
});
|
||||
@@ -38,6 +38,5 @@ describe('App Shell', () => {
|
||||
|
||||
it('hidden file inputs', () => {
|
||||
expect($('#import-file')).toExist();
|
||||
expect($('#import-logseq-file')).toExist();
|
||||
});
|
||||
});
|
||||
@@ -1,44 +1,54 @@
|
||||
// ── hyprcrd Test Index ──
|
||||
// Imports all test suites. Add new test files here.
|
||||
//
|
||||
// Loads all test suites via dynamic imports with a shared cache-busting
|
||||
// query string. This ensures edits to any test file are picked up without
|
||||
// requiring a hard refresh — each module URL becomes unique per page load.
|
||||
|
||||
import './shell.test.js';
|
||||
import './settings.test.js';
|
||||
import './board.test.js';
|
||||
import './toolbar.test.js';
|
||||
import './buckets.test.js';
|
||||
import './bucket-context.test.js';
|
||||
import './context-menu.test.js';
|
||||
import './card-interactions.test.js';
|
||||
import './filtering.test.js';
|
||||
import './sorting.test.js';
|
||||
import './state-functions.test.js';
|
||||
import './favorites.test.js';
|
||||
import './search.test.js';
|
||||
import './search-logic.test.js';
|
||||
import './calendar.test.js';
|
||||
import './calendar-popup.test.js';
|
||||
import './rrule.test.js';
|
||||
import './datepicker.test.js';
|
||||
import './gallery.test.js';
|
||||
import './help.test.js';
|
||||
import './multiselect.test.js';
|
||||
import './detail.test.js';
|
||||
import './detail-interactions.test.js';
|
||||
import './editor.test.js';
|
||||
import './editor-features.test.js';
|
||||
import './editor-save.test.js';
|
||||
import './editor-toolbar.test.js';
|
||||
import './line-numbers.test.js';
|
||||
import './canvas.test.js';
|
||||
import './snippets.test.js';
|
||||
import './image-fullscreen.test.js';
|
||||
import './markdown.test.js';
|
||||
import './markdown-edge.test.js';
|
||||
import './undo.test.js';
|
||||
import './api.test.js';
|
||||
import './api-edge.test.js';
|
||||
import './export.test.js';
|
||||
import './relay.test.js';
|
||||
import './notifications.test.js';
|
||||
import './quick-capture.test.js';
|
||||
import './theme.test.js';
|
||||
const V = '?v=' + Date.now();
|
||||
|
||||
const FILES = [
|
||||
'./shell.test.js',
|
||||
'./settings.test.js',
|
||||
'./board.test.js',
|
||||
'./toolbar.test.js',
|
||||
'./buckets.test.js',
|
||||
'./bucket-context.test.js',
|
||||
'./context-menu.test.js',
|
||||
'./card-interactions.test.js',
|
||||
'./filtering.test.js',
|
||||
'./sorting.test.js',
|
||||
'./state-functions.test.js',
|
||||
'./favorites.test.js',
|
||||
'./search.test.js',
|
||||
'./search-logic.test.js',
|
||||
'./calendar.test.js',
|
||||
'./calendar-popup.test.js',
|
||||
'./rrule.test.js',
|
||||
'./datepicker.test.js',
|
||||
'./gallery.test.js',
|
||||
'./help.test.js',
|
||||
'./multiselect.test.js',
|
||||
'./detail.test.js',
|
||||
'./detail-interactions.test.js',
|
||||
'./editor.test.js',
|
||||
'./editor-features.test.js',
|
||||
'./editor-save.test.js',
|
||||
'./editor-toolbar.test.js',
|
||||
'./line-numbers.test.js',
|
||||
'./canvas.test.js',
|
||||
'./snippets.test.js',
|
||||
'./image-fullscreen.test.js',
|
||||
'./markdown.test.js',
|
||||
'./markdown-edge.test.js',
|
||||
'./undo.test.js',
|
||||
'./api.test.js',
|
||||
'./api-edge.test.js',
|
||||
'./export.test.js',
|
||||
'./relay.test.js',
|
||||
'./notifications.test.js',
|
||||
'./quick-capture.test.js',
|
||||
'./theme.test.js',
|
||||
];
|
||||
|
||||
// Await all imports so the runner can start in a deterministic state.
|
||||
await Promise.all(FILES.map(f => import(f + V)));
|
||||
Reference in new issue
Block a user