Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Kauana tomb #22

Open
wants to merge 2 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
48 changes: 48 additions & 0 deletions exercicios/para-casa/entregas/kauana-tombolato/bank.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
//Exercicio Proposto: Considere um objeto que represente uma conta bancária, a conta possui o nome do titular, o saldo e o limite da conta. É possível fazer operações de consulta de saldo, saque e depósito. No caso de saque é necessário verificar se existe saldo suficiente para retirada, caso o cliente não tenha saldo suficiente para a operação, mas possua limite disponível (e suficiente), o saque poderá ocorrer, nesses casos o saldo do cliente ficará negativo após o saque. Além disso, o limite de uma conta pode ser reajustado (para mais e para menos) ou desativado. Use a abordagem Red - Green - Refactor para desenvolver essa aplicação.

class Bank {
constructor(nome, saldo, limite) {
this.nome = nome
this.saldo = saldo
this.limite = limite
}

consultarSaldo() {
return this.saldo
}

consultarLimite() {
return this.limite
}

depositar(valor) {
this.saldo = this.saldo + valor
return this.consultarSaldo()
}

sacar(valor) {
if (valor > this.saldo) {
if (valor > this.limite) {
throw new Error('Saldo insuficiente')
} else {
this.limite = this.limite - valor
this.saldo = this.saldo - valor
}
} else {
this.saldo = this.saldo - valor
}
return this.consultarSaldo()
}

reajustarLimite(valor) {
this.limite = valor
return this.consultarLimite()
}

desativarLimite() {
this.limite = 0
return this.consultarLimite()
}
}

module.exports = Bank
32 changes: 32 additions & 0 deletions exercicios/para-casa/entregas/kauana-tombolato/bank.test.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
const bank = require("./bank")

describe("test with bank", () => {
// deposito
let account
beforeEach(() => {
account = new bank("Kauana", 100, 50)
})
test("validar deposito", () => {
expect(account.depositar(200)).toEqual(300)
})

// saque
test("validar saque", () => {
expect(account.sacar(50)).toEqual(50)
})

// saque quando não tem saldo mas tem limite
test("validar saque", () => {
expect(() => { account.sacar(1200) }).toThrowError();
});

// reajustar limite
test("validar reajuste de limite", () => {
expect(account.reajustarLimite(100)).toEqual(100)
})

// desativar limite
test("validar desativar limite", () => {
expect(account.desativarLimite()).toEqual(0)
})
})
48 changes: 48 additions & 0 deletions exercicios/para-casa/entregas/kauana-tombolato/bankAccount.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
//Exercicio Proposto: Considere um objeto que represente uma conta bancária, a conta possui o nome do titular, o saldo e o limite da conta. É possível fazer operações de consulta de saldo, saque e depósito. No caso de saque é necessário verificar se existe saldo suficiente para retirada, caso o cliente não tenha saldo suficiente para a operação, mas possua limite disponível (e suficiente), o saque poderá ocorrer, nesses casos o saldo do cliente ficará negativo após o saque. Além disso, o limite de uma conta pode ser reajustado (para mais e para menos) ou desativado. Use a abordagem Red - Green - Refactor para desenvolver essa aplicação.

class BankAccount {
constructor(nome, saldo, limite) {
this.nome = nome
this.saldo = saldo
this.limite = limite
}

consultarSaldo() {
return this.saldo
}

consultarLimite() {
return this.limite
}

depositar(valor) {
this.saldo = this.saldo + valor
return this.consultarSaldo()
}

sacar(valor) {
if (valor > this.saldo) {
if (valor > this.limite) {

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Olá Kauana, primeiramente parabéns pelo projeto, você validou todos os cenários. Como sugestão você poderia validar o saque em um único if.
if (valor > this.saldo && valor > this.limite){
throw new Error('Saldo insuficiente')
}
Outro ponto acredito que o Else ficou um pouco confuso usando saldo e limite
this.limite = this.limite - valor
this.saldo = this.saldo - valor
}

Mais uma vez parabéns pelo código e dedicação se precisar de ajuda, conte comigo!

throw new Error('Saldo insuficiente')
} else {
this.limite = this.limite - valor
this.saldo = this.saldo - valor
}
} else {
this.saldo = this.saldo - valor
}
return this.consultarSaldo()
}

reajustarLimite(valor) {
this.limite = valor
return this.consultarLimite()
}

desativarLimite() {
this.limite = 0
return this.consultarLimite()
}
}

module.exports = BankAccount
32 changes: 32 additions & 0 deletions exercicios/para-casa/entregas/kauana-tombolato/bankAccount.test.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
const bankAccount = require("./bankAccount")

describe("test with bankAccount", () => {
// deposito
let account
beforeEach(() => {
account = new bankAccount("Kauana", 100, 50)
})
test("validar deposito", () => {
expect(account.depositar(200)).toEqual(300)
})

// saque
test("validar saque", () => {
expect(account.sacar(50)).toEqual(50)
})

// saque quando não tem saldo mas tem limite
test("validar saque", () => {
expect(() => { account.sacar(1200) }).toThrowError();
});

// reajustar limite
test("validar reajuste de limite", () => {
expect(account.reajustarLimite(100)).toEqual(100)
})

// desativar limite
test("validar desativar limite", () => {
expect(account.desativarLimite()).toEqual(0)
})
})
1 change: 1 addition & 0 deletions exercicios/para-casa/entregas/kauana-tombolato/index.js

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Esse arquivo pode ser excluído, já que os códigos estão nos outros arquivos.

Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
//exercicios feitos pela profa aqui