Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Validação retornando valor errado

Minha validação do nome está retornando false, no entanto o valor que deveria ser retornado é true.

Segue o link da imagem do debug: https://uploaddeimagens.com.br/imagens/-ksxY7s

Meu método construtor:

 constructor() {
    this.dataEhValida = ({ data, dataCriacao }) =>
      moment(data).isSameOrAfter(dataCriacao);
    this.clienteEhValido = (tamanho) => tamanho >= 5;

    this.valida = (parametros) =>
      this.validacoes.filter((campo) => {
        const { nome } = campo;
        const parametro = parametros[nome];

        return !campo.valido(parametro);
      });

    this.validacoes = [
      {
        nome: "data",
        valido: this.dataEhValida,
        mensagem: `Data de agendamento deve ser maior ou igual a data atual`,
      },
      {
        nome: "cliente",
        valido: this.clienteEhValido,
        mensagem: "Cliente deve ter pelo menos 5 caracteres",
      },
    ];
  }

Meu método adiciona:

adiciona(atendimento, res) {
    const dataCriacao = moment(new Date()).format("YYYY-MM-DD");
    const data = moment(atendimento.data, "DD/MM/YYYY").format("YYYY-MM-DD");
    const parametros = {
      data: { data, dataCriacao },
      cliente: { tamanho: atendimento.cliente.length },
    };
    const erros = this.valida(parametros);
    const existemErros = erros.length;
    if (existemErros) {
      return new Promise((_, reject) => reject(erros));
    } else {
      const atendimentoDatado = { ...atendimento, dataCriacao, data };
      return repositorio.adiciona(atendimentoDatado).then((resultados) => {
        const id = resultados.insertId;
        return { ...atendimento, id };
      });
    }
  }
1 resposta
solução!

como voce pode ver so seu proprio print, seu parametrotamanho da L10 é {tamanho: 11} (um objeto) e não 11, por isso o retorno é false msm (já que ({tamanho: 11}) >= 5 é avaliado como false)

Creio que faltou fazer um destructuring:

this.clienteEhValido = ({ tamanho }) => tamanho >= 5