Skip to content

[Entity] Buggy Behavior of upsertEntities #518

@Char2sGu

Description

@Char2sGu

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.

https://github.com/ngneat/elf/blob/9dbc51d5e36233fab81128072354548facb26256/packages/entities/src/lib/update.mutation.ts#L229C1-L239C6

    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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions