@donatocardoso/busca-cli
Version:
Ferramenta responsável por ler o conteúdo de arquivos e filtrá-los de acordo com um texto informado
83 lines (61 loc) • 3.66 kB
JavaScript
const path = require('path');
const programa = require('../../../src/pt-br/principal');
const { output } = require('../../../src/utils/message');
const pasta = programa.commands.find((programa) => programa.name() === 'pasta');
describe('busca-cli pasta [opcoes] <texto> -c [caminhos...]', () => {
beforeEach(() => {
output.length = 0;
if (pasta.opts().caminhos) delete pasta.opts().caminhos;
if (pasta.opts().detalhes) delete pasta.opts().detalhes;
if (pasta.opts().exato) delete pasta.opts().exato;
if (pasta.opts().recursivo) delete pasta.opts().recursivo;
if (pasta.opts().sensivel) delete pasta.opts().sensivel;
});
it('deve retornar nenhum arquivo encontrado', () => {
pasta.parse([
'node',
'test',
'robert conrad karen',
'-c',
'./example/data/arquivo00.txt',
'./example/data/nao-existe',
]);
expect(pasta.args).toEqual(['robert conrad karen']);
expect(output).toContain('Foram encontradas 0 ocorrências pelo termo "robert conrad karen"');
expect(output).toContain('Nenhum arquivo encontrado!');
});
it('deve retornar um arquivo encontrado: ./example/data/arquivo01.txt', () => {
pasta.parse(['node', 'test', 'anthony mackie kerry', '-c', './example/data']);
expect(pasta.args).toEqual(['anthony mackie kerry']);
expect(output).toContain('Foram encontradas 1 ocorrências pelo termo "anthony mackie kerry"');
expect(output).toContain(path.resolve(process.cwd(), './example/data/arquivo01.txt'));
});
it('deve retornar um arquivo encontrado: -e ./example/data/arquivo01.txt', () => {
pasta.parse(['node', 'test', '-e', 'anthony mackie kerry', '-c', './example/data']);
expect(pasta.args).toEqual(['anthony mackie kerry']);
expect(pasta.opts()).toEqual({ caminhos: expect.any(Array), exato: true });
expect(output).toContain('Foram encontradas 1 ocorrências pelo termo "anthony mackie kerry"');
expect(output).toContain(path.resolve(process.cwd(), './example/data/arquivo01.txt'));
});
it('deve retornar um arquivo encontrado: -er ./example/data/arquivo01.txt', () => {
pasta.parse(['node', 'test', '-er', 'anthony mackie kerry', '-c', './example/data']);
expect(pasta.args).toEqual(['anthony mackie kerry']);
expect(pasta.opts()).toEqual({ caminhos: expect.any(Array), exato: true, recursivo: true });
expect(output).toContain('Foram encontradas 1 ocorrências pelo termo "anthony mackie kerry"');
expect(output).toContain(path.resolve(process.cwd(), './example/data/arquivo01.txt'));
});
it('deve retornar um arquivo encontrado: -rs ./example/data/arquivo01.txt', () => {
pasta.parse(['node', 'test', '-rs', 'anthony mackie kerry', '-c', './example/data']);
expect(pasta.args).toEqual(['anthony mackie kerry']);
expect(pasta.opts()).toEqual({ caminhos: expect.any(Array), recursivo: true, sensivel: true });
expect(output).toContain('Foram encontradas 1 ocorrências pelo termo "anthony mackie kerry"');
expect(output).toContain(path.resolve(process.cwd(), './example/data/arquivo01.txt'));
});
it('deve retornar dois arquivos encontrados: -dr ./example/data/arquivo01.txt e ./example/data/arquivo06.txt', () => {
pasta.parse(['node', 'test', '-dr', 'anthony mackie kerry', '-c', './example/data']);
expect(pasta.args).toEqual(['anthony mackie kerry']);
expect(pasta.opts()).toEqual({ caminhos: expect.any(Array), detalhes: true, recursivo: true });
expect(output).toContain('Opções...........................: caminhos,detalhes,recursivo');
expect(output).toContain('Foram encontrados................: 2 arquivos!');
});
});