Sinon: Stubbing funções exportadas padrão

Criado em 16 nov. 2017  ·  2Comentários  ·  Fonte: sinonjs/sinon

É um caso de uso comum simular módulos ES.

por exemplo, eu tenho um módulo que importa getEventByEventId

import getEventByEventId from '../queries/getEventByEventId';

export default async (
  {
    connection,
    session
  }: ResolverContextType
) => {
  if (!session || !session.userId) {
    throw new Error('User must be authenticated.');
  }

  const event = await getEventByEventId(connection, eventId);

  // ..
}

Em meu teste, quero simular getEventByEventId, por exemplo

import test from 'ava';
import sinon from 'sinon';
import moment from 'moment';
import createReservation from '../../../src/mutators/createReservation';

test('throws an error if the event is in the past', async (t) => {
  const parameters: any = {};

  const context: any = {
    session: {
      userId: 1
    }
  };

  const stub = sinon.stub().returns({
    date: moment().format('YYYY-MM-DD'),
    time: moment(new Date().getTime() - 1000 * 60).format('HH:mm')
  });

  // How to use the stub to mock `getEventByEventId`?

  await t.throws(createReservation(context), 'Cannot create a reservation for a past event.');
});

Isso foi perguntado antes aqui: https://github.com/sinonjs/sinon/issues/1358 . Mas isso foi totalmente fechado como uma duplicata de: https://github.com/sinonjs/sinon/issues/1121 , embora seja um problema totalmente diferente.
Isso já foi mencionado naquela edição, mas parece que não está mais sendo tratado.

ES2015+

Todos 2 comentários

Sinon.JS não se preocupa com sistemas de módulos. Estou fechando isso.

Por causa dos muitos pedidos que continuam chegando, e porque os administradores do projeto também escrevem testes para ganhar a vida, publicamos How To Use Link Seams With CommonJS .

Ajude-nos a manter a lista de problemas gerenciável e faça perguntas sobre o uso na lista de discussão dos usuários do StackOverflow . Ambos são bons recursos onde um público mais amplo de usuários pode oferecer ajuda.

@sebakerckhof verifique este https://github.com/sinonjs/sinon/issues/562#issuecomment -399090111

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

stephanwlee picture stephanwlee  ·  3Comentários

sudhirbits picture sudhirbits  ·  4Comentários

kevinburkeshyp picture kevinburkeshyp  ·  4Comentários

NathanHazout picture NathanHazout  ·  3Comentários

kbirger picture kbirger  ·  3Comentários