it('invalid when without text', () => {
/**
* A ideia aqui é testar a propria classe e ver primeiro se
* a construção da classe é válida e todos os argumentos
* estão setados, graças a injeção de dependencia
* é possivel validar os parametros da classe
* utilizando os testes unitarios
*/
const data = {
text: '',
when: new Date("2020-01-01")
}
const todo = new Todo(data);
const result = todo.isValid();
// função que certifica se deu certo
expect(result).to.be.not.ok;
});
/**
* Com o stub é possivel editar o comportamento
* de uma função, retornando um mock ou até mesmo
* a execução interna da função
*/
sandbox.stub(
todoRepository.schedule,
functionName
).returns(expectedReturn)
/**
* O sandbox funciona como um ambiente virtual
* onde podemos editar os comportamentos do teste
*/
let sandbox;
before(() => {
sandbox = new createSandbox();
});
/**
* dados mock são uteis quando sabemos o que irá
* retornar de algum lugar seja ele um banco ou uma api
* pois assim conseguimos validar sem ter de fazer
* o percurso do codigo
*/
const mockDatabase = [
{
name: 'Narutinho',
age: 20,
meta: { revision: 0, created: 1660006668682, version: 0 },
'$loki': 1
}
];
/**
* com o beforeEach inicializando algo que será utilizado
* por todos os testes nesse escopo.
*/
let todoService;
beforeEach(() => {
const dependecies = {
todoRepository: {
list: sandbox.stub().returns(mockDatabase)
}
}
todoService = new TodoService(dependecies);
});