Skip to content

Object destructuring + rest doesn't work #129

Open
@0xjocke

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

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