No fim do projeto, testei trocar a senha e ver se ele retornava falso, mas ele sempre retorna true caso haja uma senha, mesmo que nao esteja igual. Aguém mais com esse problema?
Funcionários:
export class Funcionarios{
constructor(nome, salario, cpf){
this.nome;
this.salario;
this.cpf;
this._bonificacao = 1;
this._senha;
}
autenticar(senha){
return senha == this._senha;
}
cadastrarSenha(senha){
this._senha = senha;
}
}
sistema de autenticaçao
export class SistemaAutenticacao{
static login (autenticavel, senha){
if(SistemaAutenticacao.ehAutenticavel(autenticavel)){
return autenticavel.autenticar(senha)
}
return false;
}
static ehAutenticavel(autenticavel){
return "autenticar" in autenticavel && autenticavel.autenticar instanceof Function
}
}
testando colocar senhas diferentes para o cliente no index:
import {Cliente} from "./Cliente.js";
import {Diretor} from "./Funcionários/Diretor.js"
import {Gerente} from "./Funcionários/Gerente.js"
import { SistemaAutenticacao } from "./SistemaDeAutenticacao.js";
const diretor = new Diretor("Rodrigo", 10000, 123456);
const gerente = new Gerente("Ana", 5000, 321654);
diretor.cadastrarSenha("123456")
gerente.cadastrarSenha("123")
const cliente = new Cliente("Laís", 7777, "456")
const diretorEstaLogado = SistemaAutenticacao.login(diretor, "123456");
const gerenteEstaLogado = SistemaAutenticacao.login(gerente, "123");
const clienteEstaLogado = SistemaAutenticacao.login(cliente, "45356");
console.log(gerenteEstaLogado, diretorEstaLogado, clienteEstaLogado)
Quando eu testo a senha do diretor e do gerente dá certo