Skip to content

Object destructuring + rest doesn't work #129

Description

@0xjocke

Describe the bug
I cant use a Substitute mock for code that uses object destructuring + rest

To Reproduce

import Substitute from "@fluffy-spoon/substitute";

type Entity = { id: number; name: string; lastName: string };

const copyEntity = (entity: Entity) => {
  const { id, ...params } = entity;
  console.log(params);
};

const mockEntity = Substitute.for<Entity>();
mockEntity.id.returns!(1);
mockEntity.name.returns!('test name');
mockEntity.lastName.returns!('test last name');

copyEntity(mockEntity); // empty object
copyEntity({id:1, name: 'test name', lastName: 'test last name'})  // {name: 'test name', lastName: 'test last name'}

Codesandbox:
https://codesandbox.io/s/flamboyant-sea-o5zf4?file=/src/index.ts:0-469

Expected behavior
I should be able to test functions using destructuring with the rest pattern

Environment

  • Typescript version: 3.9.3
  • substitute.js version: 1.145.0
  • Node version: 12

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions