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