Commit 1e7811da authored by Gabriel Silva Hermida's avatar Gabriel Silva Hermida

Issue #9: Adicionada rota para inserir jogador

Signed-off-by: Gabriel Silva Hermida's avatarGabriel_S <gash18@inf.ufpr.br>
parent f630f4fc
Pipeline #22088 passed with stage
in 55 seconds
interface JogadorOpts {
name: string;
jogos: string[];
amigos: string[];
carteira: number;
}
import { Jogo } from "./jogo"; import { Jogo } from "./jogo";
export class Jogador { export class Jogador {
...@@ -18,8 +25,13 @@ export class Jogador { ...@@ -18,8 +25,13 @@ export class Jogador {
this.carteira = carteira; this.carteira = carteira;
} }
public writeinfo(): string { public writeinfo(): JogadorOpts {
return "nome: " + this.name + " carteira: " + this.carteira + "R$" + " jogos: " + this.jogos + " amigos: " + this.amigos + "."; return {
name: this.name
, jogos: this.jogos
, amigos: this.amigos
, carteira: this.carteira
};
} }
public getName(): string{ public getName(): string{
return this.name; return this.name;
......
...@@ -255,4 +255,48 @@ describe("Arquivo main.ts", () => { ...@@ -255,4 +255,48 @@ describe("Arquivo main.ts", () => {
}) })
.end(done); .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(); ...@@ -25,11 +25,18 @@ const app = module.exports = express();
app.use("/", bodyParser.json()); app.use("/", bodyParser.json());
app.use("/", dbhMW()); app.use("/", dbhMW());
app.post("/inicio", (req: Request, res: express.Response) => { app.post("/jogador", (req: Request, res: express.Response) => {
const jogador: Jogador = new Jogador(req.body.nome, [], [], 0); 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); req.db.createplayer(jogador);
console.log(jogador.writeinfo()); res.json({msg: "Jogador inserido com sucesso."});
res.json(jogador.writeinfo());
}); });
app.get("/", (req: Request, res: express.Response) => { 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