fix: repaired rebuild from filesystem
This commit is contained in:
@@ -731,19 +731,19 @@ describe('MetaEngine', () => {
|
||||
expect(metaDir).toContain('/custom/data/path');
|
||||
});
|
||||
|
||||
it('should sync dataPath from project.json to database if different', async () => {
|
||||
it('should sync dataPath from database to project.json if different', async () => {
|
||||
const metaDir = metaEngine.getMetaDir();
|
||||
mockFiles.set(normalizePath(`${metaDir}/project.json`), JSON.stringify({
|
||||
name: 'Project',
|
||||
dataPath: '/custom/path/from/file',
|
||||
dataPath: '/old/path/from/file',
|
||||
}));
|
||||
|
||||
// Database has different or missing dataPath
|
||||
// Database has the currently selected (authoritative) path
|
||||
mockProject = {
|
||||
id: 'test-project',
|
||||
name: 'Project',
|
||||
description: null,
|
||||
dataPath: null,
|
||||
dataPath: '/new/path/from/database',
|
||||
slug: 'project',
|
||||
createdAt: new Date(),
|
||||
updatedAt: new Date(),
|
||||
@@ -752,8 +752,11 @@ describe('MetaEngine', () => {
|
||||
|
||||
await metaEngine.syncOnStartup();
|
||||
|
||||
// Should have synced (database update called)
|
||||
expect(mockLocalDb.select).toHaveBeenCalled();
|
||||
const savedProjectJson = mockFiles.get(normalizePath(`${metaDir}/project.json`));
|
||||
expect(savedProjectJson).toBeDefined();
|
||||
const parsed = JSON.parse(savedProjectJson!);
|
||||
expect(parsed.dataPath).toBe('/new/path/from/database');
|
||||
expect(mockLocalDb.update).not.toHaveBeenCalled();
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
@@ -48,6 +48,7 @@ const mockPostEngine = {
|
||||
isSlugAvailable: vi.fn(),
|
||||
generateUniqueSlug: vi.fn(),
|
||||
rebuildDatabaseFromFiles: vi.fn(),
|
||||
reindexText: vi.fn(),
|
||||
searchPosts: vi.fn(),
|
||||
getPostsFiltered: vi.fn(),
|
||||
getAvailableTags: vi.fn(),
|
||||
@@ -629,6 +630,28 @@ describe('IPC Handlers', () => {
|
||||
expect(result).toEqual(linkedPosts);
|
||||
});
|
||||
});
|
||||
|
||||
describe('posts:rebuildFromFiles', () => {
|
||||
it('should propagate rebuild errors to the caller', async () => {
|
||||
const rebuildError = new Error('rebuild failed');
|
||||
mockPostEngine.rebuildDatabaseFromFiles.mockRejectedValue(rebuildError);
|
||||
mockProjectEngine.getActiveProject.mockResolvedValue(null);
|
||||
|
||||
await expect(invokeHandler('posts:rebuildFromFiles')).rejects.toThrow('rebuild failed');
|
||||
expect(mockPostEngine.rebuildDatabaseFromFiles).toHaveBeenCalled();
|
||||
});
|
||||
});
|
||||
|
||||
describe('posts:reindexText', () => {
|
||||
it('should propagate reindex errors to the caller', async () => {
|
||||
const reindexError = new Error('post reindex failed');
|
||||
mockPostEngine.reindexText.mockRejectedValue(reindexError);
|
||||
mockProjectEngine.getActiveProject.mockResolvedValue(null);
|
||||
|
||||
await expect(invokeHandler('posts:reindexText')).rejects.toThrow('post reindex failed');
|
||||
expect(mockPostEngine.reindexText).toHaveBeenCalled();
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
// ============ Media Handlers ============
|
||||
@@ -790,6 +813,27 @@ describe('IPC Handlers', () => {
|
||||
expect(result).toEqual(thumbnailDataUrl);
|
||||
});
|
||||
});
|
||||
|
||||
describe('media:rebuildFromFiles', () => {
|
||||
it('should propagate rebuild errors to the caller', async () => {
|
||||
const rebuildError = new Error('media rebuild failed');
|
||||
mockMediaEngine.rebuildDatabaseFromFiles.mockRejectedValue(rebuildError);
|
||||
mockProjectEngine.getActiveProject.mockResolvedValue(null);
|
||||
|
||||
await expect(invokeHandler('media:rebuildFromFiles')).rejects.toThrow('media rebuild failed');
|
||||
expect(mockMediaEngine.rebuildDatabaseFromFiles).toHaveBeenCalled();
|
||||
});
|
||||
});
|
||||
|
||||
describe('media:reindexText', () => {
|
||||
it('should propagate reindex errors to the caller', async () => {
|
||||
const reindexError = new Error('media reindex failed');
|
||||
mockMediaEngine.reindexText.mockRejectedValue(reindexError);
|
||||
|
||||
await expect(invokeHandler('media:reindexText')).rejects.toThrow('media reindex failed');
|
||||
expect(mockMediaEngine.reindexText).toHaveBeenCalled();
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
// ============ Meta Handlers ============
|
||||
|
||||
Reference in New Issue
Block a user