Skip to content

Commit

Permalink
Merge 6de699a into db6d56a
Browse files Browse the repository at this point in the history
  • Loading branch information
akhilome committed Oct 1, 2018
2 parents db6d56a + 6de699a commit c035630
Show file tree
Hide file tree
Showing 4 changed files with 87 additions and 0 deletions.
19 changes: 19 additions & 0 deletions server/controllers/menuController.js
@@ -0,0 +1,19 @@
import pool from '../db/config';

class MenuController {
static async getMenu(req, res) {
try {
const menu = (await pool.query('SELECT * FROM menu')).rows;

res.status(200).json({
status: 'success',
message: 'menu fetched successfully',
menu,
});
} catch (error) {
res.status(500).json();
}
}
}

export default MenuController;
6 changes: 6 additions & 0 deletions server/index.js
Expand Up @@ -4,6 +4,7 @@ import dotenv from 'dotenv';
import router from './routes/routes';
import authRouter from './routes/authRouter';
import ordersRouter from './routes/ordersRouter';
import menuRouter from './routes/menuRouter';

dotenv.config();
const app = express();
Expand All @@ -18,11 +19,16 @@ app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));

app.use('/api/v1', router);

// Orders routes
app.use('/api/v1', ordersRouter);

// Auth routes
app.use('/api/v1/auth', authRouter);

// Menu routes
app.use('/api/v1/menu', menuRouter);

app.listen(process.env.PORT);

export default app;
9 changes: 9 additions & 0 deletions server/routes/menuRouter.js
@@ -0,0 +1,9 @@
import { Router } from 'express';
import AuthHandler from '../middleware/authHandler';
import MenuController from '../controllers/menuController';

const router = new Router();

router.get('/', AuthHandler.authorize, MenuController.getMenu);

export default router;
53 changes: 53 additions & 0 deletions tests/routes/menu.spec.js
@@ -0,0 +1,53 @@
import chai from 'chai';
import 'chai/register-should';
import chaiHttp from 'chai-http';
import dirtyChai from 'dirty-chai';

import app from '../../server/index';
import {
seedData,
emptyTablesPromise,
populateUsersTablePromise,
populateMenuTablePromise,
generateValidToken,
} from '../seed/seed';

chai.use(chaiHttp);
chai.use(dirtyChai);

before(async () => {
await emptyTablesPromise;
await populateMenuTablePromise;
await populateUsersTablePromise;
});

describe('GET /menu', () => {
const { validUser } = seedData.users;

it('should get menu successfully if user is logged in', (done) => {
chai.request(app)
.get('/api/v1/menu')
.set('x-auth', generateValidToken(validUser))
.end((err, res) => {
if (err) done(err);

res.status.should.eql(200);
res.body.message.should.eql('menu fetched successfully');
res.body.menu.should.be.an('array');
done();
});
});

it('should not get menu if user not logged in', (done) => {
chai.request(app)
.get('/api/v1/menu')
.set('x-auth', '')
.end((err, res) => {
if (err) done(err);

res.status.should.eql(401);
res.body.status.should.eql('error');
done();
});
});
});

0 comments on commit c035630

Please sign in to comment.