From aca96360853ded1a85f8569621e5d588f2ec7288 Mon Sep 17 00:00:00 2001 From: RichardHeise <rfhf19@inf.ufpr.br> Date: Thu, 17 Oct 2019 12:12:29 -0300 Subject: [PATCH] Issue #3: Adicionado rota para listar jogos Signed-off-by: RichardHeise <rfhf19@inf.ufpr.br> --- src/DBHandler.ts | 9 +++++++++ src/main.spec.ts | 47 +++++++++++++++++++++++++++++++++++++++++++---- src/main.ts | 14 +++++++++----- 3 files changed, 61 insertions(+), 9 deletions(-) diff --git a/src/DBHandler.ts b/src/DBHandler.ts index 3d65fe6..c9560c8 100644 --- a/src/DBHandler.ts +++ b/src/DBHandler.ts @@ -12,6 +12,15 @@ export class DBHandler { , new Jogador("Player2", [], [], 100.0) ]; this.jogos = []; + + this.jogadores = [ + new Jogador("Player1", [], [], 0.0) + , new Jogador("Player2", [], [], 100.0) + ]; + this.jogos = [ + new Jogo("Overcooked", "fracasso", "fracasso", new Date("2010-01-01"), 200), + new Jogo("Tera", "FracassoXD", "FracassoXD", new Date("2010-01-01"), 0) + ]; this.compras = []; } public createplayer(player: Jogador) { diff --git a/src/main.spec.ts b/src/main.spec.ts index d849d00..d3b2699 100644 --- a/src/main.spec.ts +++ b/src/main.spec.ts @@ -1,9 +1,9 @@ import { expect } from "chai"; import * as request from "supertest"; import * as server from "./main"; +import { Jogo } from "./jogo"; describe("Arquivo main.ts", () => { - it("Deveria listar os jogadores com sucesso", (done) => { request(server) .get("/jogadores") @@ -11,11 +11,50 @@ describe("Arquivo main.ts", () => { .expect((res: any) => { expect(res.body).to.be.an("array"); expect(res.body).to.have.length(2); - for (let i =0; i < 2; ++i) { - expect(res.body[i]).to.be.eql("Player" + (i+1)); + for (let i = 0; i < 2; ++i) { + expect(res.body[i]).to.be.eql("Player" + (i + 1)); } }) - .end(done); + .end(done); }); + it("Deveria listar os jogos com sucesso", (done) => { + request(server) + .get("/jogos") + .expect(200) + .expect((res: any) => { + expect(res.body).to.be.an("array"); + expect(res.body).to.have.length(2); + expect(res.body[0]).to.be.eql("Overcooked"); + expect(res.body[1]).to.be.eql("Tera"); + }) + .end(done); + }); + it("Fracassa em inserir um jogo", (done) => { + request(server) + .post("/jogo") + .send({nome: "Overcooked", dev: "fracasso", producer: undefined, rel: undefined, price: 20 }) + .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("Alguns parâmetros não foram informados"); + }) + .end(done); + }); + it("Insere um jogo", (done) => { + request(server) + .post("/jogo") + .send({nome: "Overcooked", dev: "fracasso", producer: "fracasso2", release: "2010-01-01", price: 20 }) + .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("Sucesso"); + }) + .end(done); + }); }); diff --git a/src/main.ts b/src/main.ts index 52e1ab3..621d52d 100644 --- a/src/main.ts +++ b/src/main.ts @@ -1,6 +1,6 @@ #!/usr/bin/env node -import * as express from "express"; import * as bodyParser from "body-parser"; +import * as express from "express"; import { Compra } from "./compra"; import { DBHandler } from "./DBHandler"; import { Jogador } from "./jogador"; @@ -58,7 +58,7 @@ app.get("/perfil/:nome", (req: Request, res: express.Response) => { res.json(req.db.readplayer(ID).writeinfo()); }); -app.get("/catalogo", (req: Request, res: express.Response) => { +app.get("/jogos", (req: Request, res: express.Response) => { res.json(req.db.list("jogos")); }); @@ -118,11 +118,15 @@ app.get("/adicionar/saldo", (req: Request, res: express.Response) => { res.json("O jogador " + req.db.readplayer(0).getname() + " adicionou " + saldo + "R$"); }); -app.post("/adicionar-jogos", (req: Request, res: express.Response) => { +app.post("/jogo", (req: Request, res: express.Response) => { + if (!(req.body.nome && req.body.dev && req.body.producer && req.body.release && req.body.price)) { + res.status(400).json({msg: "Alguns parâmetros não foram informados"}); + } + // posteriormente, fazer comparação de tipos const game: Jogo = new Jogo(req.body.nome, req.body.dev, req.body.producer, new Date(req.body.release), req.body.price); req.db.creategame(game); - console.log(req.db.readgame(0).writeinfo()); - res.json(game.writeinfo()); + res.json({msg: "Sucesso"}); + }); app.listen(3000); -- GitLab