fix: proper opening of the mac app on bookmarklet
This commit is contained in:
60
tests/renderer/navigation/blogmarkHandling.test.ts
Normal file
60
tests/renderer/navigation/blogmarkHandling.test.ts
Normal file
@@ -0,0 +1,60 @@
|
||||
import { describe, expect, it, vi } from 'vitest';
|
||||
import { handleBlogmarkCreatedEvent } from '../../../src/renderer/navigation/blogmarkHandling';
|
||||
|
||||
describe('handleBlogmarkCreatedEvent', () => {
|
||||
it('does not collapse sidebar when already in posts view', () => {
|
||||
const setActiveView = vi.fn();
|
||||
const toggleSidebar = vi.fn();
|
||||
const setSelectedPost = vi.fn();
|
||||
const openTab = vi.fn();
|
||||
|
||||
handleBlogmarkCreatedEvent(
|
||||
{
|
||||
activeView: 'posts',
|
||||
sidebarVisible: true,
|
||||
},
|
||||
{
|
||||
id: 'post-1',
|
||||
},
|
||||
{
|
||||
setActiveView,
|
||||
toggleSidebar,
|
||||
setSelectedPost,
|
||||
openTab,
|
||||
},
|
||||
);
|
||||
|
||||
expect(setActiveView).not.toHaveBeenCalled();
|
||||
expect(toggleSidebar).not.toHaveBeenCalled();
|
||||
expect(setSelectedPost).toHaveBeenCalledWith('post-1');
|
||||
expect(openTab).toHaveBeenCalledTimes(1);
|
||||
});
|
||||
|
||||
it('switches to posts view and opens sidebar when needed', () => {
|
||||
const setActiveView = vi.fn();
|
||||
const toggleSidebar = vi.fn();
|
||||
const setSelectedPost = vi.fn();
|
||||
const openTab = vi.fn();
|
||||
|
||||
handleBlogmarkCreatedEvent(
|
||||
{
|
||||
activeView: 'media',
|
||||
sidebarVisible: false,
|
||||
},
|
||||
{
|
||||
id: 'post-2',
|
||||
},
|
||||
{
|
||||
setActiveView,
|
||||
toggleSidebar,
|
||||
setSelectedPost,
|
||||
openTab,
|
||||
},
|
||||
);
|
||||
|
||||
expect(setActiveView).toHaveBeenCalledWith('posts');
|
||||
expect(toggleSidebar).toHaveBeenCalledTimes(1);
|
||||
expect(setSelectedPost).toHaveBeenCalledWith('post-2');
|
||||
expect(openTab).toHaveBeenCalledTimes(1);
|
||||
});
|
||||
});
|
||||
31
tests/renderer/navigation/deferredEventGate.test.ts
Normal file
31
tests/renderer/navigation/deferredEventGate.test.ts
Normal file
@@ -0,0 +1,31 @@
|
||||
import { describe, expect, it, vi } from 'vitest';
|
||||
import { createDeferredEventGate } from '../../../src/renderer/navigation/deferredEventGate';
|
||||
|
||||
describe('createDeferredEventGate', () => {
|
||||
it('queues events until marked ready', () => {
|
||||
const gate = createDeferredEventGate<string>();
|
||||
const consume = vi.fn();
|
||||
|
||||
gate.push('first', consume);
|
||||
gate.push('second', consume);
|
||||
|
||||
expect(consume).not.toHaveBeenCalled();
|
||||
|
||||
gate.markReady(consume);
|
||||
|
||||
expect(consume).toHaveBeenCalledTimes(2);
|
||||
expect(consume).toHaveBeenNthCalledWith(1, 'first');
|
||||
expect(consume).toHaveBeenNthCalledWith(2, 'second');
|
||||
});
|
||||
|
||||
it('consumes immediately after ready', () => {
|
||||
const gate = createDeferredEventGate<string>();
|
||||
const consume = vi.fn();
|
||||
|
||||
gate.markReady(consume);
|
||||
gate.push('now', consume);
|
||||
|
||||
expect(consume).toHaveBeenCalledTimes(1);
|
||||
expect(consume).toHaveBeenCalledWith('now');
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user