Commit 66f3600d authored by Lucas Fernandes de Oliveira's avatar Lucas Fernandes de Oliveira

Merge branch 'issue/9' into 'develop'

Issue #9: Adicionada rota para inserir jogador

Closes #9

See merge request !9
parents f630f4fc 1e7811da
Pipeline #22092 passed with stage
in 1 minute and 46 seconds
interface JogadorOpts {
name: string;
jogos: string[];
amigos: string[];
carteira: number;
}
import { Jogo } from "./jogo";
export class Jogador {
......@@ -18,8 +25,13 @@ export class Jogador {
this.carteira = carteira;
}
public writeinfo(): string {
return "nome: " + this.name + " carteira: " + this.carteira + "R$" + " jogos: " + this.jogos + " amigos: " + this.amigos + ".";
public writeinfo(): JogadorOpts {
return {
name: this.name
, jogos: this.jogos
, amigos: this.amigos
, carteira: this.carteira
};
}
public getName(): string{
return this.name;
......
......@@ -255,4 +255,48 @@ describe("Arquivo main.ts", () => {
})
.end(done);
});
// Testa sucesso da inserção de um jogador no bd --- método: post em app.post("/jogador")
it("Insere um jogador", (done) => {
request(server)
.post("/jogador")
.send({name: "Jefferson"})
.expect(200)
.expect((res: any) => {
expect(res.body).to.be.an("object");
expect(res.body).to.have.property("msg");
expect(res.body.msg).to.be.an("string");
expect(res.body.msg).to.be.eql("Jogador inserido com sucesso.");
})
.end(done);
});
// Testa fracasso da inserção de um jogador no bd --- método: post em app.post("/jogador")
// Falta de parâmetro
it("Falha em inserir um jogador por falta de parâmetro", (done) => {
request(server)
.post("/jogador")
.send({name: undefined})
.expect(400)
.expect((res: any) => {
expect(res.body).to.be.an("object");
expect(res.body).to.have.property("msg");
expect(res.body.msg).to.be.an("string");
expect(res.body.msg).to.be.eql("Jogador não informado.");
})
.end(done);
});
// Parâmetro inválido
it("Falha em inserir um jogador parâmetro inválido", (done) => {
request(server)
.post("/jogador")
.send({name: 890})
.expect(400)
.expect((res: any) => {
expect(res.body).to.be.an("object");
expect(res.body).to.have.property("msg");
expect(res.body.msg).to.be.an("string");
expect(res.body.msg).to.be.eql("Nome inválido.");
})
.end(done);
});
// Fim do teste em app.post("/jogador")
});
......@@ -25,11 +25,18 @@ const app = module.exports = express();
app.use("/", bodyParser.json());
app.use("/", dbhMW());
app.post("/inicio", (req: Request, res: express.Response) => {
const jogador: Jogador = new Jogador(req.body.nome, [], [], 0);
app.post("/jogador", (req: Request, res: express.Response) => {
if (!req.body.name){
res.status(400).json({msg: "Jogador não informado."});
return;
}
if (typeof req.body.name !== "string"){
res.status(400).json({msg: "Nome inválido."});
return;
}
const jogador: Jogador = new Jogador(req.body.name, [], [], 0);
req.db.createplayer(jogador);
console.log(jogador.writeinfo());
res.json(jogador.writeinfo());
res.json({msg: "Jogador inserido com sucesso."});
});
app.get("/", (req: Request, res: express.Response) => {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment