-
- Notifications
You must be signed in to change notification settings - Fork 96
Open
Description
When comparing two mongoose models whose _id or discriminated docs arent equal, the library returns no differences.
Steps to reproduce: (pseudo code)
1.Find a document
const original = await exampe.findOne(...); // original.referencedDoc has value = new ObjectId("667c39c3ef67892912314323"); - Perform an update and find document again
await original.update({ referencedDoc: new ObjectId("64c7cda1db76ef25cfc5f901"); }) const latestDocument = await exampe.findOne(...); - Compare differences between original and latestDocument.
const diffs = diff(original, latestDocument); console.log('diff', diffs) Output: (prints no differences)
{}
Expected output: (should print the difference)
{ referencedDoc: new ObjectId("64c7cda1db76ef25cfc5f901"); } This bug may be fixed by changing the isEmpty utility function:
const isEmpty = o => Object.keys(o).length === 0;
It is returning zero because "ObjectId" is a class without "keys", but it can be readed as a string perfectly.
Metadata
Metadata
Assignees
Labels
No labels