mirror of
https://github.com/mauriceboe/TREK.git
synced 2026-06-21 22:31:46 +00:00
fix: update backend tests and service bugs for gallery 1-to-N schema
updatePhoto: write sort_order to journey_entry_photos (junction) not journey_photos, since JP_SELECT reads jep.sort_order — updating the gallery row had no visible effect. deletePhoto: include id in return value so callers that check deleted.id still work. Tests updated for new schema: - journeyShareService: insertJourneyPhoto helper now inserts into journey_photos (keyed by journey_id) + journey_entry_photos junction instead of the old entry_id-keyed table - SVC-081: deleteEntry cascades junction rows (journey_entry_photos), not gallery rows (journey_photos); assert junction is gone, gallery is preserved - SVC-086: syncTripPhotos now populates the gallery directly — no [Trip Photos] wrapper entry; assert journey_photos gallery row instead - INT-028: error message updated to 'journey_photo_id required'
This commit is contained in:
@@ -1325,9 +1325,10 @@ describe('Edge cases', () => {
|
||||
const result = deleteEntry(entry.id, user.id);
|
||||
expect(result).toBe(true);
|
||||
|
||||
// Photo should be deleted with the entry
|
||||
const deletedPhoto = testDb.prepare('SELECT * FROM journey_photos WHERE id = ?').get(photo!.id) as any;
|
||||
expect(deletedPhoto).toBeUndefined();
|
||||
// Junction row must be gone (ON DELETE CASCADE from journey_entries).
|
||||
// Gallery row (journey_photos) is preserved — photo may belong to other entries.
|
||||
const junctionRow = testDb.prepare('SELECT * FROM journey_entry_photos WHERE entry_id = ?').get(entry.id) as any;
|
||||
expect(junctionRow).toBeUndefined();
|
||||
});
|
||||
|
||||
it('JOURNEY-SVC-082: updateJourney can set cover_gradient', () => {
|
||||
@@ -1395,17 +1396,12 @@ describe('Edge cases', () => {
|
||||
|
||||
addTripToJourney(journey.id, trip.id, user.id);
|
||||
|
||||
// Should have a [Trip Photos] entry with the imported photo
|
||||
const photoEntry = testDb.prepare(
|
||||
"SELECT * FROM journey_entries WHERE journey_id = ? AND title = '[Trip Photos]'"
|
||||
).get(journey.id) as any;
|
||||
expect(photoEntry).toBeDefined();
|
||||
|
||||
// Trip photos now go straight into the journey gallery (no wrapper entry).
|
||||
const photos = testDb.prepare(`
|
||||
SELECT jp.*, tkp.asset_id FROM journey_photos jp
|
||||
JOIN trek_photos tkp ON tkp.id = jp.photo_id
|
||||
WHERE jp.entry_id = ?
|
||||
`).all(photoEntry.id);
|
||||
WHERE jp.journey_id = ?
|
||||
`).all(journey.id);
|
||||
expect(photos.length).toBe(1);
|
||||
expect((photos[0] as any).asset_id).toBe('immich-photo-1');
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user