[Entity] Buggy Behavior of `upsertEntities`
Opened this issue · 3 comments
Char2sGu commented
Which @ngneat/elf-* package(s) are the source of the bug?
entities
Is this a regression?
No
Description
When upserting an array of entities, where some entities do not yet exist but were repeated in the array, the upsertion will result in the same id being added to the ids
array for multiple times.
for (const entity of entitiesArray) {
const id: getIdType<S, Ref> = entity[idKey];
if (hasEntity(id, options)(state)) { // <-- This should be `hasEntity(id, options)(state) || updatedEntitiesId.includes(id)`
asObject[id] = { ...state[entitiesKey][id], ...entity };
updatedEntitiesId.push(id);
} else {
ids.push(id);
asObject[id] = entity;
}
}
Please provide a link to a minimal reproduction of the bug
No response
Please provide the exception or error you saw
No response
Please provide the environment you discovered this bug in
No response
Anything else?
No response
Do you want to create a pull request?
Yes
Char2sGu commented
I can create a PR if this is confirmed a bug
NetanelBasal commented
Seems like a bug, you're welcome to create a PR. Thanks
mhosman commented
I also see that the upsert is not always working. Right now I have an object that changed after a request, and after the upsert, the data inside of it is not changing.