4
respostas

Erro: Não retorna o Array com Resultados?

Pessoal, li documentação, refiz o código, não consigo resolver... segue o erro... alguma ideia do que tentar?

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Insira aqui a descrição dessa imagem para ajudar na acessibilidadeInsira aqui a descrição dessa imagem para ajudar na acessibilidade

4 respostas

consegue compartilha o projeto, ou mostrar os arquivos *.js envolvidos?

Claro

index.test.js

import pegaArquivo from "../index.js";

const arrayResult = [
  {
    FileList: 'https://developer.mozilla.org/pt-BR/docs/Web/API/FileList'
  }
]

describe ('pegaArquivo::', () => {

  it('deve ser uma função', () => {
    expect(typeof pegaArquivo).toBe('function');
  })

  it('deve retornar array com resultados', async () => {
    const resultado = await pegaArquivo('.\test\arquivos\texto1.md') 
    expect(resultado).toEqual(arrayResult)
  })

})

index.js

import { exec } from 'child_process';
import { groupCollapsed } from 'console';
import fs from 'fs';
import path from 'path';
import validaURLs from './http-validacao.js';

function extraiLinks(texto){
    const regex = /\[([^\]]*)\]\((https?:\/\/[^$#\s].[^\s]*)\)/gm;
    const arrayResultados =[];
    let temp;
    while((temp = regex.exec(texto)) !== null){
        arrayResultados.push({ [temp[1]]: temp[2]})
        //para usar como chave de um objeto precisa colocar todo conteúdo em colchetes.. no caso o temp[1]
    }
    return arrayResultados.length ===0 ? 'Não há links' : arrayResultados; 
}


function trataErro (erro){
   // throw new Error(chalk.red(erro.code,'mensagem referente ao erro'));
   throw new Error(erro.code,'não há arquivo no caminho');

}

async function pegaArquivo(caminhoDoArquivo) {
    const encoding = 'utf-8';
    try {
        const texto = await fs.promises.readFile(caminhoDoArquivo, encoding)
        return extraiLinks(texto);
    } catch(erro) {
      trataErro(erro);
    } 
   }

   export default pegaArquivo;

package.json

{
  "name": "06node",
  "version": "1.0.0",
  "main": "index.js",
  "type": "module",
  "scripts": {
    "test": "node --experimental-vm-modules node_modules/jest/bin/jest.js ./test",
    "cli": "node cli.js ./arquivos/texto1.md"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "description": "",
  "dependencies": {
    "chalk": "^5.0.1",
    "node-fetch": "^3.2.8"
  },
  "devDependencies": {
    "jest": "^28.1.3"
  }
}

resolvido era a barra no caminho \ ao invés de /

Mesmo erro aqui, barra invertida resolveu tbm.