Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

BUG: no difference detected when comparting two mongoose documents (ObjectId). #103

Open
soknifedev opened this issue Jun 26, 2024 · 0 comments

Comments

@soknifedev
Copy link

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");
  1. Perform an update and find document again
await original.update({ referencedDoc: new ObjectId("64c7cda1db76ef25cfc5f901"); })
const latestDocument = await exampe.findOne(...);
  1. 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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant