2.0.0 • Published 2 years ago

pipe-mock v2.0.0

Weekly downloads
-
License
MIT
Repository
github
Last release
2 years ago

PipeMock

PipeMock é um componente de anotação e simulação de funções pipe-line.

Separando a palavra Pipe-Mock em duas partes, onde o Pipe (do inglês, cano ou tubo) representa as funções puras muito utilisadas no paradigma da programação funcional, e onde Mock (simulador ou falsificador) em desenvolvimento de software é considerado um objeto que simula o comportamento de outros objetos reais e sendo muito utilizado para testes e observação de comportamento dos mesmos.

Sendo utilizado de forma correta, o mesmo pode testar e simular completamente o fluxo de varias funções em pipeline aninhadas, cujas dependências foram previamente disponibilizadas por parâmetros seguindo o modelo de injeção de dependências.

Instalando

Use the package manager npm to install PipeMock.

npm i pipe-mock

Usabilidade

Podemos utilizar o mock de forma aleatória para vermos o resultado.

import { mock } from "pipe-mock";

// Simulando propriedades injetadas como dependência
const { props, otherProps } = mock();

// Simulando uma função maluca qualquer
const mockResult = props.fakeFuncion(
  props.fakeFunc2(
    props.foo, // valor fake
    props.bar, // valor fake
    [123, "abc"], // valor qualquer
    otherProps.fakeArray([true, false])
  )
);

// Obtendo o controlador do resultado
const $mock = mockResult.$mock;

// Obtendo os dados em JSON
console.log($mock.json());

Que imprimirá:

{
  ":type": "function",
  "path": "props.fakeFuncion",
  "props": [
    {
      ":type": "function",
      "path": "props.fakeFunc2",
      "props": [
        {
          ":type": "prop",
          "path": "props.foo"
        },
        {
          ":type": "prop",
          "path": "props.bar"
        },
        [123, "abc"],
        {
          ":type": "function",
          "path": "otherProps.fakeArray",
          "props": [[true, false]]
        }
      ]
    }
  ]
}

Utilizando mock para analisar funções puras:

// utilizando a biblioteca lodash como exemplo
import lodash from "lodash/fp";

// Função comum utilizada para mapear os valores de um array
// e convertê-los para upper-case
function arrayToUpper(props) {
  const { pipe, map, toUpper } = props;
  return pipe(map(toUpper));
}

const names = ["John Doe", "Mary Jane"];

const result = arrayToUpper(lodash)(names);

console.log(result);
// ["JOHN DOE", "MARY JANE"]

const mockResult = arrayToUpper(mock());

console.log(mockResult.$mock.json());

Que imprimirá:

{
  ":type": "function",
  "path": "pipe",
  "props": [
    {
      ":type": "function",
      "path": "map",
      "props": [
        {
          ":type": "prop",
          "path": "toUpper"
        }
      ]
    }
  ]
}

Contribuindo com o projeto

Solicitações pull são bem-vindas. Para mudanças importantes, abra um problema primeiro para discutir o que você gostaria de mudar.

Licença

MIT

2.0.0

2 years ago

1.2.3

2 years ago

1.2.2

2 years ago

1.2.0

3 years ago

1.1.1

3 years ago

1.1.0

3 years ago

1.2.1

3 years ago

1.0.15

3 years ago

1.0.14

3 years ago

1.0.13

3 years ago

1.0.11

3 years ago

1.0.12

3 years ago

1.0.10

3 years ago

1.0.9

3 years ago

1.0.7

3 years ago

1.0.6

3 years ago

1.0.5

3 years ago