got server tests to pass
This commit is contained in:
parent
076f56bf59
commit
5c58db879c
|
@ -88,17 +88,15 @@ exports.listSubmissions = function(req, res) {
|
|||
}
|
||||
res.json(_submissions);
|
||||
});
|
||||
|
||||
};
|
||||
|
||||
/**
|
||||
* Create a new form
|
||||
*/
|
||||
exports.create = function(req, res) {
|
||||
debugger;
|
||||
|
||||
|
||||
if(!req.body.form){
|
||||
return res.status(401).send({
|
||||
return res.status(400).send({
|
||||
message: 'Invalid Input'
|
||||
});
|
||||
}
|
||||
|
|
|
@ -71,7 +71,6 @@ var VisitorDataSchema = new Schema({
|
|||
userAgent: {
|
||||
type: String
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
var formSchemaOptions = {
|
||||
|
@ -219,7 +218,7 @@ FormSchema.virtual('analytics.fields').get(function () {
|
|||
var visitors = this.analytics.visitors;
|
||||
var that = this;
|
||||
|
||||
if(this.form_fields.length === 0) {
|
||||
if(!this.form_fields || this.form_fields.length === 0) {
|
||||
return null;
|
||||
}
|
||||
|
||||
|
|
|
@ -9,7 +9,8 @@ var should = require('should'),
|
|||
User = mongoose.model('User'),
|
||||
Form = mongoose.model('Form'),
|
||||
Field = mongoose.model('Field'),
|
||||
FormSubmission = mongoose.model('FormSubmission');
|
||||
FormSubmission = mongoose.model('FormSubmission'),
|
||||
async = require('async');
|
||||
|
||||
/**
|
||||
* Globals
|
||||
|
@ -68,7 +69,7 @@ describe('Form Routes Unit tests', function() {
|
|||
.send({form: myForm})
|
||||
.expect(401)
|
||||
.end(function(FormSaveErr, FormSaveRes) {
|
||||
|
||||
console.log(FormSaveRes.text);
|
||||
// Call the assertion callback
|
||||
done(FormSaveErr);
|
||||
});
|
||||
|
@ -83,7 +84,7 @@ describe('Form Routes Unit tests', function() {
|
|||
});
|
||||
});
|
||||
|
||||
it(' > should be able to read/get a Form if not signed in', function(done) {
|
||||
it(' > should be able to read/get a live Form if not signed in', function(done) {
|
||||
// Create new Form model instance
|
||||
var FormObj = new Form(myForm);
|
||||
|
||||
|
@ -105,6 +106,23 @@ describe('Form Routes Unit tests', function() {
|
|||
});
|
||||
});
|
||||
|
||||
it(' > should be able to read/get a non-live Form if not signed in', function(done) {
|
||||
// Create new Form model instance
|
||||
var FormObj = new Form(myForm);
|
||||
FormObj.isLive = false;
|
||||
|
||||
// Save the Form
|
||||
FormObj.save(function(err, form) {
|
||||
if(err) return done(err);
|
||||
|
||||
userSession.get('/subdomain/' + credentials.username + '/forms/' + form._id + '/render')
|
||||
.expect(401, {message: 'Form is Not Public'})
|
||||
.end(function(err, res) {
|
||||
done(err);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
it(' > should not be able to delete an Form if not signed in', function(done) {
|
||||
// Set Form user
|
||||
myForm.admin = user;
|
||||
|
@ -146,6 +164,16 @@ describe('Form Routes Unit tests', function() {
|
|||
});
|
||||
});
|
||||
|
||||
it(' > should not be able to create a Form if body is empty', function(done) {
|
||||
loginSession.post('/forms')
|
||||
.send({form: null})
|
||||
.expect(400, {"message":"Invalid Input"})
|
||||
.end(function(FormSaveErr, FormSaveRes) {
|
||||
// Call the assertion callback
|
||||
done(FormSaveErr);
|
||||
});
|
||||
});
|
||||
|
||||
it(' > should not be able to save a Form if no title is provided', function(done) {
|
||||
// Set Form with a invalid title field
|
||||
myForm.title = '';
|
||||
|
@ -165,10 +193,22 @@ describe('Form Routes Unit tests', function() {
|
|||
|
||||
done();
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
it(' > should be able to update a Form if signed in', function(done) {
|
||||
it(' > should be able to create a Form if form_fields are undefined', function(done) {
|
||||
myForm.analytics = null;
|
||||
myForm.form_fields = null;
|
||||
|
||||
loginSession.post('/forms')
|
||||
.send({form: myForm})
|
||||
.expect(200)
|
||||
.end(function(FormSaveErr, FormSaveRes) {
|
||||
// Call the assertion callback
|
||||
done(FormSaveErr);
|
||||
});
|
||||
});
|
||||
|
||||
it(' > should be able to update a Form if signed in and Form is valid', function(done) {
|
||||
|
||||
// Save a new Form
|
||||
loginSession.post('/forms')
|
||||
|
@ -182,7 +222,7 @@ describe('Form Routes Unit tests', function() {
|
|||
}
|
||||
|
||||
// Update Form title
|
||||
myForm.title = 'WHY YOU GOTTA BE SO MEAN?';
|
||||
myForm.title = 'WHY YOU GOTTA BE SO FORMULAIC?';
|
||||
|
||||
// Update an existing Form
|
||||
loginSession.put('/forms/' + FormSaveRes.body._id)
|
||||
|
@ -197,13 +237,12 @@ describe('Form Routes Unit tests', function() {
|
|||
|
||||
// Set assertions
|
||||
(FormUpdateRes.body._id).should.equal(FormSaveRes.body._id);
|
||||
(FormUpdateRes.body.title).should.match('WHY YOU GOTTA BE SO MEAN?');
|
||||
(FormUpdateRes.body.title).should.match(myForm.title);
|
||||
|
||||
// Call the assertion callback
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
it(' > should be able to delete a Form if signed in', function(done) {
|
||||
|
@ -238,10 +277,9 @@ describe('Form Routes Unit tests', function() {
|
|||
done();
|
||||
});
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
it('should be able to save new form while logged in', function(done){
|
||||
it(' > should be able to save new form while logged in', function(done){
|
||||
// Save a new Form
|
||||
authenticatedSession.post('/forms')
|
||||
.send({form: myForm})
|
||||
|
@ -271,12 +309,70 @@ describe('Form Routes Unit tests', function() {
|
|||
});
|
||||
});
|
||||
|
||||
it(' > should be able to get list of users\' forms sorted by date created while logged in', function(done) {
|
||||
var myForm1 = {
|
||||
title: 'First Form',
|
||||
language: 'en',
|
||||
admin: user.id,
|
||||
form_fields: [
|
||||
new Field({'fieldType':'textfield', 'title':'First Name', 'fieldValue': ''}),
|
||||
new Field({'fieldType':'checkbox', 'title':'nascar', 'fieldValue': ''}),
|
||||
new Field({'fieldType':'checkbox', 'title':'hockey', 'fieldValue': ''})
|
||||
],
|
||||
isLive: true
|
||||
};
|
||||
|
||||
var myForm2 = {
|
||||
title: 'Second Form',
|
||||
language: 'en',
|
||||
admin: user.id,
|
||||
form_fields: [
|
||||
new Field({'fieldType':'textfield', 'title':'Last Name', 'fieldValue': ''}),
|
||||
new Field({'fieldType':'checkbox', 'title':'formula one', 'fieldValue': ''}),
|
||||
new Field({'fieldType':'checkbox', 'title':'football', 'fieldValue': ''})
|
||||
],
|
||||
isLive: true
|
||||
};
|
||||
|
||||
var FormObj1 = new Form(myForm1);
|
||||
var FormObj2 = new Form(myForm2);
|
||||
|
||||
async.waterfall([
|
||||
function(callback) {
|
||||
FormObj1.save(function(err){
|
||||
callback(err);
|
||||
});
|
||||
},
|
||||
function(callback) {
|
||||
FormObj2.save(function(err){
|
||||
callback(err);
|
||||
});
|
||||
},
|
||||
function(callback) {
|
||||
loginSession.get('/forms')
|
||||
.expect(200)
|
||||
.end(function(err, res) {
|
||||
res.body.length.should.equal(2);
|
||||
res.body[0].title.should.equal('Second Form');
|
||||
res.body[1].title.should.equal('First Form');
|
||||
|
||||
// Call the assertion callback
|
||||
callback(err);
|
||||
});
|
||||
}
|
||||
], function (err) {
|
||||
done(err);
|
||||
});
|
||||
});
|
||||
|
||||
afterEach('should be able to signout user', function(done){
|
||||
authenticatedSession.get('/auth/signout')
|
||||
.expect(200)
|
||||
.end(function(signoutErr, signoutRes) {
|
||||
// Handle signout error
|
||||
if (signoutErr) return done(signoutErr);
|
||||
if (signoutErr) {
|
||||
return done(signoutErr);
|
||||
}
|
||||
authenticatedSession.destroy();
|
||||
done();
|
||||
});
|
||||
|
|
|
@ -199,6 +199,7 @@ describe('FormSubmission Model Unit Tests:', function() {
|
|||
|
||||
it('should preserve deleted form_fields that have submissions without any problems', function(done) {
|
||||
|
||||
var fieldPropertiesToOmit = ['deletePreserved', 'globalId', 'lastModified', 'created', '_id', 'submissionId', 'isSubmission', 'validFieldTypes', 'title'];
|
||||
var old_fields = myForm.toObject().form_fields;
|
||||
var new_form_fields = _.clone(myForm.toObject().form_fields);
|
||||
new_form_fields.splice(0, 1);
|
||||
|
@ -210,8 +211,8 @@ describe('FormSubmission Model Unit Tests:', function() {
|
|||
should.not.exist(err);
|
||||
should.exist(_form.form_fields);
|
||||
|
||||
var actual_fields = _.deepOmit(_form.toObject().form_fields, ['deletePreserved', 'globalId', 'lastModified', 'created', '_id', 'submissionId']);
|
||||
old_fields = _.deepOmit(old_fields, ['deletePreserved', 'globalId', 'lastModified', 'created', '_id', 'submissionId']);
|
||||
var actual_fields = _.deepOmit(_form.toObject().form_fields, fieldPropertiesToOmit);
|
||||
old_fields = _.deepOmit(old_fields, fieldPropertiesToOmit);
|
||||
|
||||
should.deepEqual(actual_fields, old_fields, 'old form_fields not equal to newly saved form_fields');
|
||||
done();
|
||||
|
|
|
@ -5,7 +5,7 @@ block content
|
|||
div.row.valign
|
||||
h3.col-md-12.text-center=__('500_HEADER')
|
||||
div.col-md-4.col-md-offset-4
|
||||
if process.env.NODE_ENV == 'development'
|
||||
if process.env.NODE_ENV == 'development' || process.env.NODE_ENV == 'test'
|
||||
div.col-md-12.text-center(style="padding-bottom: 50px;")
|
||||
| #{error}
|
||||
else
|
||||
|
|
|
@ -148,8 +148,6 @@ module.exports = function(db) {
|
|||
// reassign url
|
||||
req.url = subdomainPath;
|
||||
|
||||
req.userId = user._id;
|
||||
|
||||
// Q.E.D.
|
||||
return next();
|
||||
});
|
||||
|
@ -200,7 +198,7 @@ module.exports = function(db) {
|
|||
app.use(morgan(logger.getLogFormat(), logger.getMorganOptions()));
|
||||
|
||||
// Environment dependent middleware
|
||||
if (process.env.NODE_ENV === 'development') {
|
||||
if (process.env.NODE_ENV === 'development' || process.env.NODE_ENV === 'test') {
|
||||
// Disable views cache
|
||||
app.set('view cache', false);
|
||||
} else if (process.env.NODE_ENV === 'production') {
|
||||
|
@ -263,9 +261,13 @@ module.exports = function(db) {
|
|||
//Visitor Language Detection
|
||||
app.use(function(req, res, next) {
|
||||
var acceptLanguage = req.headers['accept-language'];
|
||||
var languages = acceptLanguage.match(/[a-z]{2}(?!-)/g) || [];
|
||||
var languages, supportedLanguage;
|
||||
|
||||
if(acceptLanguage){
|
||||
languages = acceptLanguage.match(/[a-z]{2}(?!-)/g) || [];
|
||||
supportedLanguage = containsAnySupportedLanguages(languages);
|
||||
}
|
||||
|
||||
var supportedLanguage = containsAnySupportedLanguages(languages);
|
||||
if(!req.user && supportedLanguage !== null){
|
||||
var currLanguage = res.cookie('userLang');
|
||||
|
||||
|
@ -288,7 +290,7 @@ module.exports = function(db) {
|
|||
app.use(function (req, res, next) {
|
||||
|
||||
// Website you wish to allow to connect
|
||||
res.setHeader('Access-Control-Allow-Origin', 'https://sentry.polydaic.com');
|
||||
res.setHeader('Access-Control-Allow-Origin', 'https://sentry.io');
|
||||
|
||||
// Request methods you wish to allow
|
||||
res.setHeader('Access-Control-Allow-Methods', 'GET, POST, OPTIONS, PUT, PATCH, DELETE');
|
||||
|
@ -320,16 +322,10 @@ module.exports = function(db) {
|
|||
// Log it
|
||||
client.captureError(err);
|
||||
|
||||
if(process.env.NODE_ENV === 'production'){
|
||||
res.status(500).render('500', {
|
||||
error: 'Internal Server Error'
|
||||
});
|
||||
} else {
|
||||
// Error page
|
||||
res.status(500).render('500', {
|
||||
error: err.stack
|
||||
});
|
||||
}
|
||||
// Error page
|
||||
res.status(500).render('500', {
|
||||
error: err.stack
|
||||
});
|
||||
});
|
||||
|
||||
// Assume 404 since no middleware responded
|
||||
|
|
|
@ -14,8 +14,6 @@ module.exports = function () {
|
|||
passwordField: 'password'
|
||||
},
|
||||
function (username, password, done) {
|
||||
console.log('\n\n\n\n\nusername: '+username);
|
||||
console.log('password: '+password)
|
||||
User.findOne({
|
||||
$or: [
|
||||
{'username': username.toLowerCase()},
|
||||
|
|
BIN
public/modules/core/img/loaders/page-loader.gif
Normal file
BIN
public/modules/core/img/loaders/page-loader.gif
Normal file
Binary file not shown.
After Width: | Height: | Size: 46 KiB |
Loading…
Reference in a new issue