/* * * * FILL IN EACH FUNCTIONAL TEST BELOW COMPLETELY * -----[Keep the tests in the same order!]----- * (if additional are added, keep them at the very end!) */ var chaiHttp = require('chai-http'); var chai = require('chai'); var assert = chai.assert; var server = require('../server'); chai.use(chaiHttp); suite('Functional Tests', function() { suite('POST /api/issues/{project} => object with issue data', function() { test('Every field filled in', function(done) { chai.request(server) .post('/api/issues/test') .send({ issue_title: 'Title', issue_text: 'text', created_by: 'Functional Test - Every field filled in', assigned_to: 'Chai and Mocha', status_text: 'In QA' }) .end(function(err, res){ assert.equal(res.status, 200); //fill me in too! done(); }); }); test('Required fields filled in', function(done) { }); test('Missing required fields', function(done) { }); }); suite('PUT /api/issues/{project} => text', function() { test('No body', function(done) { }); test('One field to update', function(done) { }); test('Multiple fields to update', function(done) { }); }); suite('GET /api/issues/{project} => Array of objects with issue data', function() { test('No filter', function(done) { chai.request(server) .get('/api/issues/test') .query({}) .end(function(err, res){ assert.equal(res.status, 200); assert.isArray(res.body); assert.property(res.body[0], 'issue_title'); assert.property(res.body[0], 'issue_text'); assert.property(res.body[0], 'created_on'); assert.property(res.body[0], 'updated_on'); assert.property(res.body[0], 'created_by'); assert.property(res.body[0], 'assigned_to'); assert.property(res.body[0], 'open'); assert.property(res.body[0], 'status_text'); assert.property(res.body[0], '_id'); done(); }); }); test('One filter', function(done) { }); test('Multiple filters (test for multiple fields you know will be in the db for a return)', function(done) { }); }); suite('DELETE /api/issues/{project} => text', function() { test('No _id', function(done) { }); test('Valid _id', function(done) { }); }); });