got tests to pass
This commit is contained in:
parent
78a6c8fabc
commit
9ed2b732b4
|
@ -91,10 +91,7 @@ module.exports = {
|
|||
},
|
||||
assets: {
|
||||
css: [
|
||||
'public/modules/**/css/*.css',
|
||||
'!public/modules/**/demo/**/*.css',
|
||||
'!public/modules/**/dist/**/*.css',
|
||||
'!public/modules/**/node_modules/**/*.css'
|
||||
'public/modules/**/css/*.css'
|
||||
],
|
||||
//Order matters here as some directives in form_modules override those in modules
|
||||
js: [
|
||||
|
@ -110,8 +107,9 @@ module.exports = {
|
|||
'public/form_modules/forms/base/config/*.js',
|
||||
'public/form_modules/forms/base/config/*/*.js',
|
||||
'public/form_modules/forms/base/**/*.js',
|
||||
'!public/modules/forms/base/**/*.js',
|
||||
'!public/modules/**/tests/**/*.js'
|
||||
'public/form_modules/forms/base/*/*.js',
|
||||
'!public/modules/*/tests/**/*.js',
|
||||
'!public/modules/*/tests/*.js'
|
||||
],
|
||||
form_js: [
|
||||
'public/form-config.js',
|
||||
|
@ -126,32 +124,21 @@ module.exports = {
|
|||
],
|
||||
views: [
|
||||
'public/modules/**/*.html',
|
||||
'public/form_modules/forms/base/**/*.html',
|
||||
'!public/modules/forms/base/**/*.html',
|
||||
'!public/modules/**/dist/**/*.html',
|
||||
'!public/modules/**/tests/**/*.html'
|
||||
'public/form_modules/forms/base/**/*.html'
|
||||
],
|
||||
unit_tests: [
|
||||
'public/lib/angular-mocks/angular-mocks.js',
|
||||
'public/modules/*/tests/unit/**/*.js',
|
||||
'!public/modules/**/demo/**/*.js',
|
||||
'!public/modules/**/node_modules/**/*.js'
|
||||
'public/modules/*/tests/unit/**/*.js'
|
||||
],
|
||||
e2e_tests: [
|
||||
'public/modules/*/tests/e2e/**.js',
|
||||
'!public/modules/**/demo/**/*.js',
|
||||
'!public/modules/**/node_modules/**/*.js'
|
||||
'public/modules/*/tests/e2e/**.js'
|
||||
],
|
||||
form_unit_tests: [
|
||||
'public/lib/angular-mocks/angular-mocks.js',
|
||||
'public/form_modules/*/tests/unit/**/*.js',
|
||||
'!public/form_modules/**/demo/**/*.js',
|
||||
'!public/form_modules/**/node_modules/**/*.js'
|
||||
'public/form_modules/*/tests/unit/**/*.js'
|
||||
],
|
||||
form_e2e_tests: [
|
||||
'public/form_modules/*/tests/e2e/**.js',
|
||||
'!public/form_modules/**/demo/**/*.js',
|
||||
'!public/form_modules/**/node_modules/**/*.js'
|
||||
'public/form_modules/*/tests/e2e/**.js'
|
||||
]
|
||||
}
|
||||
};
|
||||
|
|
|
@ -71,7 +71,6 @@ module.exports = function(db) {
|
|||
app.locals.bowerOtherFiles = config.getBowerOtherAssets();
|
||||
|
||||
app.locals.jsFiles = config.getJavaScriptAssets();
|
||||
console.log(app.locals.jsFiles);
|
||||
app.locals.formJSFiles = config.getFormJavaScriptAssets();
|
||||
app.locals.cssFiles = config.getCSSAssets();
|
||||
|
||||
|
|
|
@ -18,7 +18,7 @@ module.exports = function(config) {
|
|||
frameworks: ['jasmine'],
|
||||
|
||||
// List of files / patterns to load in the browser
|
||||
files: bowerDep.concat(['public/lib/socket.io-client/dist/socket.io.js'], applicationConfiguration.assets.js, applicationConfiguration.assets.unit_tests, applicationConfiguration.assets.views),
|
||||
files: bowerDep.concat(['public/lib/socket.io-client/dist/socket.io.js', 'public/lib/mobile-detect/mobile-detect.js'], applicationConfiguration.assets.js, applicationConfiguration.assets.views, applicationConfiguration.assets.unit_tests),
|
||||
|
||||
// Test results reporter to use
|
||||
// Possible values: 'dots', 'progress', 'junit', 'growl', 'coverage'
|
||||
|
@ -26,14 +26,17 @@ module.exports = function(config) {
|
|||
|
||||
|
||||
preprocessors: {
|
||||
'public/modules/*/views/**/**.html': ['ng-html2js'],
|
||||
'public/modules/*/views/*.html': ['ng-html2js']
|
||||
'public/modules/**/views/**/*.html': ['ng-html2js'],
|
||||
'public/modules/**/views/*.html': ['ng-html2js'],
|
||||
'public/form_modules/forms/base/views/**/*.html': ['ng-html2js'],
|
||||
'public/form_modules/forms/base/views/*.html': ['ng-html2js']
|
||||
//'public/modules/*/*.js': ['coverage'],
|
||||
//'public/modules/*/*[!tests]*/*.js': ['coverage'],
|
||||
},
|
||||
|
||||
ngHtml2JsPreprocessor: {
|
||||
stripPrefix: 'public/',
|
||||
prependPrefix: 'static/',
|
||||
|
||||
// the name of the Angular module to create
|
||||
moduleName: 'module-templates'
|
||||
|
|
|
@ -12,7 +12,7 @@ jsep.addBinaryOp('!ends', 10);
|
|||
angular.module('view-form').directive('submitFormDirective', ['$http', 'TimeCounter', '$filter', '$rootScope', 'SendVisitorData', '$translate',
|
||||
function ($http, TimeCounter, $filter, $rootScope, SendVisitorData, $translate) {
|
||||
return {
|
||||
templateUrl: '/static/form_modules/forms/base/views/directiveViews/form/submit-form.client.view.html',
|
||||
templateUrl: 'form_modules/forms/base/views/directiveViews/form/submit-form.client.view.html',
|
||||
restrict: 'E',
|
||||
scope: {
|
||||
myform:'=',
|
||||
|
@ -32,19 +32,12 @@ angular.module('view-form').directive('submitFormDirective', ['$http', 'TimeCoun
|
|||
}).length;
|
||||
|
||||
var nb_valid = $filter('formValidity')($scope.myform);
|
||||
|
||||
$scope.translateAdvancementData = {
|
||||
done: nb_valid,
|
||||
total: form_fields_count,
|
||||
answers_not_completed: form_fields_count - nb_valid
|
||||
};
|
||||
|
||||
console.log('$scope.translateAdvancementData: ');
|
||||
console.log($filter('translate')('CREATE_A_NEW_FORM'));
|
||||
console.log( $translate('COMPLETING_NEEDED', {
|
||||
answers_not_completed: $scope.translateAdvancementData.answers_not_completed
|
||||
} ) );
|
||||
|
||||
$scope.reloadForm = function(){
|
||||
//Reset Form
|
||||
$scope.myform.submitted = false;
|
||||
|
@ -233,7 +226,7 @@ angular.module('view-form').directive('submitFormDirective', ['$http', 'TimeCoun
|
|||
if (document.querySelectorAll('.activeField .focusOn')[0]) {
|
||||
//FIXME: DAVID: Figure out how to set focus without scroll movement in HTML Dom
|
||||
document.querySelectorAll('.activeField .focusOn')[0].focus();
|
||||
} else {
|
||||
} else if (document.querySelectorAll('.activeField input')[0]){
|
||||
document.querySelectorAll('.activeField input')[0].focus();
|
||||
}
|
||||
});
|
||||
|
|
|
@ -171,7 +171,6 @@ angular.module('forms').config(['$translateProvider', function ($translateProvid
|
|||
REVIEW: 'Review',
|
||||
BACK_TO_FORM: 'Go back to Form',
|
||||
EDIT_FORM: 'Edit this TellForm',
|
||||
CREATE_FORM: 'Create this TellForm',
|
||||
ADVANCEMENT: '{{done}} out of {{total}} answered',
|
||||
CONTINUE_FORM: 'Continue to Form',
|
||||
REQUIRED: 'required',
|
||||
|
@ -182,15 +181,11 @@ angular.module('forms').config(['$translateProvider', function ($translateProvid
|
|||
ERROR_URL_INVALID: 'Please a valid url',
|
||||
OK: 'OK',
|
||||
ENTER: 'press ENTER',
|
||||
YES: 'Yes',
|
||||
NO: 'No',
|
||||
NEWLINE: 'press SHIFT+ENTER to create a newline',
|
||||
CONTINUE: 'Continue',
|
||||
LEGAL_ACCEPT: 'I accept',
|
||||
LEGAL_NO_ACCEPT: 'I don’t accept',
|
||||
DELETE: 'Delete',
|
||||
CANCEL: 'Cancel',
|
||||
SUBMIT: 'Submit',
|
||||
UPLOAD_FILE: 'Upload your File',
|
||||
UPLOAD_FILE: 'Upload your File'
|
||||
});
|
||||
}]);
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
'use strict';
|
||||
|
||||
angular.module('view-form').config(['$translateProvider', function ($translateProvider) {
|
||||
angular.module('forms').config(['$translateProvider', function ($translateProvider) {
|
||||
|
||||
$translateProvider.translations('french', {
|
||||
FORM_SUCCESS: 'Votre formulaire a été enregistré!',
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
'use strict';
|
||||
|
||||
angular.module('view-form').config(['$translateProvider', function ($translateProvider) {
|
||||
angular.module('forms').config(['$translateProvider', function ($translateProvider) {
|
||||
|
||||
$translateProvider.translations('german', {
|
||||
FORM_SUCCESS: 'Ihre Angaben wurden gespeichert.',
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
'use strict';
|
||||
|
||||
angular.module('view-form').config(['$translateProvider', function ($translateProvider) {
|
||||
angular.module('forms').config(['$translateProvider', function ($translateProvider) {
|
||||
|
||||
$translateProvider.translations('italian', {
|
||||
FORM_SUCCESS: 'Il formulario è stato inviato con successo!',
|
||||
|
|
|
@ -137,9 +137,9 @@ angular.module('forms').config(['$translateProvider', function ($translateProvid
|
|||
BTN_BACKGROUND_COLOR: 'Color de fondo del botón',
|
||||
BTN_TEXT_COLOR: 'Color del texto del botón',
|
||||
|
||||
//Share View
|
||||
EMBED_YOUR_FORM: 'Pone tu formulario',
|
||||
SHARE_YOUR_FORM: 'Compartí tu formulario',
|
||||
//Share View
|
||||
EMBED_YOUR_FORM: 'Pone tu formulario',
|
||||
SHARE_YOUR_FORM: 'Compartí tu formulario',
|
||||
|
||||
//Admin Tabs
|
||||
CREATE_TAB: 'Crear',
|
||||
|
@ -169,8 +169,6 @@ angular.module('forms').config(['$translateProvider', function ($translateProvid
|
|||
FORM_SUCCESS: '¡El formulario ha sido enviado con éxito!',
|
||||
REVIEW: 'Revisar',
|
||||
BACK_TO_FORM: 'Regresar al formulario',
|
||||
EDIT_FORM: '',
|
||||
CREATE_FORM: '',
|
||||
ADVANCEMENT: '{{done}} de {{total}} contestadas',
|
||||
CONTINUE_FORM: 'Continuar al formulario',
|
||||
REQUIRED: 'Información requerida',
|
||||
|
@ -181,14 +179,10 @@ angular.module('forms').config(['$translateProvider', function ($translateProvid
|
|||
ERROR_URL_INVALID: 'Favor de proporcionar un url válido',
|
||||
OK: 'OK',
|
||||
ENTER: 'pulse INTRO',
|
||||
YES: 'Si',
|
||||
NO: 'No',
|
||||
NEWLINE: 'presione SHIFT+INTRO para crear una nueva línea',
|
||||
CONTINUE: 'Continuar',
|
||||
LEGAL_ACCEPT: 'Yo acepto',
|
||||
LEGAL_NO_ACCEPT: 'Yo no acepto',
|
||||
DELETE: 'Eliminar',
|
||||
CANCEL: 'Cancelar',
|
||||
SUBMIT: 'Registrar',
|
||||
UPLOAD_FILE: 'Cargar el archivo',
|
||||
Y: 'S',
|
||||
|
|
|
@ -92,7 +92,6 @@ angular.module('forms').controller('ListFormsController', ['$rootScope', '$scope
|
|||
|
||||
// Create new Form
|
||||
$scope.createNewForm = function(){
|
||||
// console.log($scope.forms.createForm);
|
||||
|
||||
var form = {};
|
||||
form.title = $scope.forms.createForm.title.$modelValue;
|
||||
|
@ -101,7 +100,6 @@ angular.module('forms').controller('ListFormsController', ['$rootScope', '$scope
|
|||
if($scope.forms.createForm.$valid && $scope.forms.createForm.$dirty){
|
||||
$http.post('/forms', {form: form})
|
||||
.success(function(data, status, headers){
|
||||
//console.log('new form created');
|
||||
// Redirect after save
|
||||
$scope.goToWithId('viewForm.create', data._id+'');
|
||||
}).error(function(errorResponse){
|
||||
|
@ -118,11 +116,9 @@ angular.module('forms').controller('ListFormsController', ['$rootScope', '$scope
|
|||
|
||||
$http.delete('/forms/'+$scope.myforms[form_index]._id)
|
||||
.success(function(data, status, headers){
|
||||
//console.log('form deleted successfully');
|
||||
$scope.myforms.splice(form_index, 1);
|
||||
$scope.cancelDeleteModal();
|
||||
}).error(function(error){
|
||||
//console.log('ERROR: Form could not be deleted.');
|
||||
console.error(error);
|
||||
});
|
||||
};
|
||||
|
|
|
@ -0,0 +1,140 @@
|
|||
HeaderController
|
||||
PhantomJS 2.1.1 (Mac OS X 0.0.0): Executed 1 of 39 SUCCESS (0 secs / 0.077 secs)
|
||||
LOG: '$scope.myform'
|
||||
LOG: '$scope.myform'
|
||||
PhantomJS 2.1.1 (Mac OS X 0.0.0): Executed 1 of 39 SUCCESS (0 secs / 0.077 secs)
|
||||
LOG: Object{title: 'Form Title', admin: 'ed873933b1f1dea0ce12fab9', language: 'english', form_fields: [Object{fieldType: ..., title: ..., fieldValue: ..., deletePreserved: ..., _id: ...}, Object{fieldType: ..., title: ..., fieldValue: ..., deletePreserved: ..., _id: ...}, Object{fieldType: ..., title: ..., fieldValue: ..., deletePreserved: ..., _id: ...}], analytics: Object{visitors: []}, submissions: [], _id: '525a8422f6d0f87f0e407a33', id: '525a8422f6d0f87f0e407a33'}
|
||||
LOG: Object{title: 'Form Title', admin: 'ed873933b1f1dea0ce12fab9', language: 'english', form_fields: [Object{fieldType: ..., title: ..., fieldValue: ..., deletePreserved: ..., _id: ...}, Object{fieldType: ..., title: ..., fieldValue: ..., deletePreserved: ..., _id: ...}, Object{fieldType: ..., title: ..., fieldValue: ..., deletePreserved: ..., _id: ...}], analytics: Object{visitors: []}, submissions: [], _id: '525a8422f6d0f87f0e407a33'LOG: Object{title: 'Form Title', admin: 'ed873933b1f1dea0ce12fab9', language: 'english', form_fields: [Object{fieldType: ..., title: ..., fieldValue: ..., deletePreserved: ..., _id: ...}, Object{fieldType: ..., title: ..., fieldValue: ..., deletePreserved: ..., _id: ...}, Object{fieldType: ..., title: ..., fieldValue: ..., deletePreserved: ..., _id: ...}], analytics: Object{visitors: []}, submissions: [], _id: '525a8422f6d0f87f0e407a33', id: '525a8422f6d0f87f0e407a33'}
|
||||
PhantomJS 2.1.1 (Mac OS X 0.0.0): Executed 1 of 39 SUCCESS (0 secs / 0.077 secs)
|
||||
AdminForm Controller Tests
|
||||
PhantomJS 2.1.1 (Mac OS X 0.0.0): Executed 2 of 39 SUCCESS (0 secs / 0.106 secs)
|
||||
LOG: '$scope.myform'
|
||||
LOG: '$scope.myform'
|
||||
PhantomJS 2.1.1 (Mac OS X 0.0.0): Executed 2 of 39 SUCCESS (0 secs / 0.106 secs)
|
||||
LOG: Object{title: 'Form Title', admin: 'ed873933b1f1dea0ce12fab9', language: 'english', form_fields: [Object{fieldType: ..., title: ..., fieldValue: ..., deletePreserved: ..., _id: ...}, Object{fieldType: ..., title: ..., fieldValue: ..., deletePreserved: ..., _id: ...}, Object{fieldType: ..., title: ..., fieldValue: ..., deletePreserved: ..., _id: ...}], analytics: Object{visitors: []}, submissions: [], _id: '525a8422f6d0f87f0e407a33', id: '525a8422f6d0f87f0e407a33'}
|
||||
LOG: Object{title: 'Form Title', admin: 'ed873933b1f1dea0ce12fab9', language: 'english', form_fields: [Object{fieldType: ..., title: ..., fieldValue: ..., deletePreserved: ..., _id: ...}, Object{fieldType: ..., title: ..., fieldValue: ..., deletePreserved: ..., _id: ...}, Object{fieldType: ..., title: ..., fieldValue: ..., deletePreserved: ..., _id: ...}], analytics: Object{visitors: []}, submissions: [], _id: '525a8422f6d0f87f0e407a33'LOG: Object{title: 'Form Title', admin: 'ed873933b1f1dea0ce12fab9', language: 'english', form_fields: [Object{fieldType: ..., title: ..., fieldValue: ..., deletePreserved: ..., _id: ...}, Object{fieldType: ..., title: ..., fieldValue: ..., deletePreserved: ..., _id: ...}, Object{fieldType: ..., title: ..., fieldValue: ..., deletePreserved: ..., _id: ...}], analytics: Object{visitors: []}, submissions: [], _id: '525a8422f6d0f87f0e407a33', id: '525a8422f6d0f87f0e407a33'}
|
||||
PhantomJS 2.1.1 (Mac OS X 0.0.0): Executed 2 of 39 SUCCESS (0 secs / 0.106 secs)
|
||||
LOG: 'form deleted successfully'
|
||||
LOG: 'form deleted successfully'
|
||||
PhantomJS 2.1.1 (Mac OS X 0.0.0): Executed 2 of 39 SUCCESS (0 secs / 0.106 secs)
|
||||
✔ $scope.removeCurrentForm() with valid form data should send a DELETE request with PhantomJS 2.1.1 (Mac OS X 0.0.0): Executed 3 of 39 SUCCESS (0 secs / 0.131 secs)
|
||||
LOG: '$scope.myform'
|
||||
LOG: '$scope.myform'
|
||||
PhantomJS 2.1.1 (Mac OS X 0.0.0): Executed 3 of 39 SUCCESS (0 secs / 0.131 secs)
|
||||
LOG: Object{title: 'Form Title', admin: 'ed873933b1f1dea0ce12fab9', language: 'english', form_fields: [Object{fieldType: ..., title: ..., fieldValue: ..., deletePreserved: ..., _id: ...}, Object{fieldType: ..., title: ..., fieldValue: ..., deletePreserved: ..., _id: ...}, Object{fieldType: ..., title: ..., fieldValue: ..., deletePreserved: ..., _id: ...}], analytics: Object{visitors: []}, submissions: [], _id: '525a8422f6d0f87f0e407a33', id: '525a8422f6d0f87f0e407a33'}
|
||||
LOG: Object{title: 'Form Title', admin: 'ed873933b1f1dea0ce12fab9', language: 'english', form_fields: [Object{fieldType: ..., title: ..., fieldValue: ..., deletePreserved: ..., _id: ...}, Object{fieldType: ..., title: ..., fieldValue: ..., deletePreserved: ..., _id: ...}, Object{fieldType: ..., title: ..., fieldValue: ..., deletePreserved: ..., _id: ...}], analytics: Object{visitors: []}, submissions: [], _id: '525a8422f6d0f87f0e407a33'LOG: Object{title: 'Form Title', admin: 'ed873933b1f1dea0ce12fab9', language: 'english', form_fields: [Object{fieldType: ..., title: ..., fieldValue: ..., deletePreserved: ..., _id: ...}, Object{fieldType: ..., title: ..., fieldValue: ..., deletePreserved: ..., _id: ...}, Object{fieldType: ..., title: ..., fieldValue: ..., deletePreserved: ..., _id: ...}], analytics: Object{visitors: []}, submissions: [], _id: '525a8422f6d0f87f0e407a33', id: '525a8422f6d0f87f0e407a33'}
|
||||
PhantomJS 2.1.1 (Mac OS X 0.0.0): Executed 3 of 39 SUCCESS (0 secs / 0.131 secs)
|
||||
PhantomJS 2.1.1 (Mac OS X 0.0.0): Executed 4 of 39 SUCCESS (0 secs / 0.15 secs)
|
||||
LOG: '$scope.myform'
|
||||
LOG: '$scope.myform'
|
||||
PhantomJS 2.1.1 (Mac OS X 0.0.0): Executed 4 of 39 SUCCESS (0 secs / 0.15 secs)
|
||||
LOG: Object{title: 'Form Title', admin: 'ed873933b1f1dea0ce12fab9', language: 'english', form_fields: [Object{fieldType: ..., title: ..., fieldValue: ..., deletePreserved: ..., _id: ...}, Object{fieldType: ..., title: ..., fieldValue: ..., deletePreserved: ..., _id: ...}, Object{fieldType: ..., title: ..., fieldValue: ..., deletePreserved: ..., _id: ...}], analytics: Object{}, _id: '525a8422f6d0f87f0e407a33', id: '525a8422f6d0f87f0e407a33'}
|
||||
LOG: Object{title: 'Form Title', admin: 'ed873933b1f1dea0ce12fab9', language: 'english', form_fields: [Object{fieldType: ..., title: ..., fieldValue: ..., deletePreserved: ..., _id: ...}, Object{fieldType: ..., title: ..., fieldValue: ..., deletePreserved: ..., _id: ...}, Object{fieldType: ..., title: ..., fieldValue: ..., deletePreserved: ..., _id: ...}], analytics: Object{}, _id: '525a8422f6d0f87f0e407a33', id: '525a8422f6d0f87f0e407aLOG: Object{title: 'Form Title', admin: 'ed873933b1f1dea0ce12fab9', language: 'english', form_fields: [Object{fieldType: ..., title: ..., fieldValue: ..., deletePreserved: ..., _id: ...}, Object{fieldType: ..., title: ..., fieldValue: ..., deletePreserved: ..., _id: ...}, Object{fieldType: ..., title: ..., fieldValue: ..., deletePreserved: ..., _id: ...}], analytics: Object{}, _id: '525a8422f6d0f87f0e407a33', id: '525a8422f6d0f87f0e407a33'}
|
||||
PhantomJS 2.1.1 (Mac OS X 0.0.0): Executed 4 of 39 SUCCESS (0 secs / 0.15 secs)
|
||||
PhantomJS 2.1.1 (Mac OS X 0.0.0): Executed 5 of 39 SUCCESS (0 secs / 0.165 secs)
|
||||
LOG: '$scope.myform'
|
||||
LOG: '$scope.myform'
|
||||
PhantomJS 2.1.1 (Mac OS X 0.0.0): Executed 5 of 39 SUCCESS (0 secs / 0.165 secs)
|
||||
LOG: Object{title: 'Form Title', admin: 'ed873933b1f1dea0ce12fab9', language: 'english', form_fields: [Object{fieldType: ..., title: ..., fieldValue: ..., deletePreserved: ..., _id: ...}, Object{fieldType: ..., title: ..., fieldValue: ..., deletePreserved: ..., _id: ...}, Object{fieldType: ..., title: ..., fieldValue: ..., deletePreserved: ..., _id: ...}], analytics: Object{}, _id: '525a8422f6d0f87f0e407a33', id: '525a8422f6d0f87f0e407a33'}
|
||||
LOG: Object{title: 'Form Title', admin: 'ed873933b1f1dea0ce12fab9', language: 'english', form_fields: [Object{fieldType: ..., title: ..., fieldValue: ..., deletePreserved: ..., _id: ...}, Object{fieldType: ..., title: ..., fieldValue: ..., deletePreserved: ..., _id: ...}, Object{fieldType: ..., title: ..., fieldValue: ..., deletePreserved: ..., _id: ...}], analytics: Object{}, _id: '525a8422f6d0f87f0e407a33', id: '525a8422f6d0f87f0e407aLOG: Object{title: 'Form Title', admin: 'ed873933b1f1dea0ce12fab9', language: 'english', form_fields: [Object{fieldType: ..., title: ..., fieldValue: ..., deletePreserved: ..., _id: ...}, Object{fieldType: ..., title: ..., fieldValue: ..., deletePreserved: ..., _id: ...}, Object{fieldType: ..., title: ..., fieldValue: ..., deletePreserved: ..., _id: ...}], analytics: Object{}, _id: '525a8422f6d0f87f0e407a33', id: '525a8422f6d0f87f0e407a33'}
|
||||
PhantomJS 2.1.1 (Mac OS X 0.0.0): Executed 5 of 39 SUCCESS (0 secs / 0.165 secs)
|
||||
LOG: 'Modal dismissed at: Wed Sep 20 2017 18:01:37 GMT-0700 (PDT)'
|
||||
LOG: 'Modal dismissed at: Wed Sep 20 2017 18:01:37 GMT-0700 (PDT)'
|
||||
PhantomJS 2.1.1 (Mac OS X 0.0.0): Executed 5 of 39 SUCCESS (0 secs / 0.165 secs)
|
||||
PhantomJS 2.1.1 (Mac OS X 0.0.0): Executed 6 of 39 SUCCESS (0 secs / 0.181 secs)
|
||||
LOG: {}
|
||||
LOG: {}
|
||||
PhantomJS 2.1.1 (Mac OS X 0.0.0): Executed 6 of 39 SUCCESS (0 secs / 0.181 secs)
|
||||
ListForms Controller Tests
|
||||
PhantomJS 2.1.1 (Mac OS X 0.0.0): Executed 7 of 39 SUCCESS (0 secs / 0.196 secs)
|
||||
PhantomJS 2.1.1 (Mac OS X 0.0.0): Executed 8 of 39 SUCCESS (0 secs / 0.207 secs)
|
||||
PhantomJS 2.1.1 (Mac OS X 0.0.0): Executed 9 of 39 SUCCESS (0 secs / 0.218 secs)
|
||||
PhantomJS 2.1.1 (Mac OS X 0.0.0): Executed 10 of 39 SUCCESS (0 secs / 0.229 secs)
|
||||
LOG: {}
|
||||
LOG: {}
|
||||
PhantomJS 2.1.1 (Mac OS X 0.0.0): Executed 10 of 39 SUCCESS (0 secs / 0.229 secs)
|
||||
SubmitForm Controller Tests
|
||||
✖ on controller instantiation it should populate $scope.myform with current Form
|
||||
PhantomJS 2.1.1 (Mac OS X 0.0.0) SubmitForm Controller Tests on controller instantiation it should populate $scope.myform with current Form FAILED
|
||||
TypeError: undefined is not a constructor (evaluating 'expect( scope.myform ).toEqualData(sampleForm)') (line 151)
|
||||
/Users/admin/Documents/tellform/public/modules/forms/tests/unit/controllers/submit-form.client.controller.test.js:151:48
|
||||
invoke@/Users/admin/Documents/tellform/public/lib/angular/angular.js:4570:22
|
||||
workFn@/Users/admin/Documents/tellform/public/lib/angular-mocks/angular-mocks.js:2524:26
|
||||
inject@/Users/admin/Documents/tellform/public/lib/angular-mocks/angular-mocks.js:2493:28
|
||||
/Users/admin/Documents/tellform/public/modules/forms/tests/unit/controllers/submit-form.client.controller.test.js:140:100
|
||||
/Users/admin/Documents/tellform/public/modules/forms/tests/unit/controllers/submit-form.client.controller.test.js:5:13
|
||||
global code@/Users/admin/Documents/tellform/public/modules/forms/tests/unit/contPhantomJS 2.1.1 (Mac OS X 0.0.0) SubmitForm Controller Tests on controller instantiation it should populate $scope.myform with current Form FAILED
|
||||
TypeError: undefined is not a constructor (evaluating 'expect( scope.myform ).toEqualData(sampleForm)') (line 151)
|
||||
/Users/admin/Documents/tellform/public/modules/forms/tests/unit/controllers/submit-form.client.controller.test.js:151:48
|
||||
invoke@/Users/admin/Documents/tellform/public/lib/angular/angular.js:4570:22
|
||||
workFn@/Users/admin/Documents/tellform/public/lib/angular-mocks/angular-mocks.js:2524:26
|
||||
inject@/Users/admin/Documents/tellform/public/lib/angular-mocks/angular-mocks.js:2493:28
|
||||
/Users/admin/Documents/tellform/public/modules/forms/tests/unit/controllers/submit-form.client.controller.test.js:140:100
|
||||
/Users/admin/Documents/tellform/public/modules/forms/tests/unit/controllers/submit-form.client.controller.test.js:5:13
|
||||
global code@/Users/admin/Documents/tellform/public/modules/forms/tests/unit/controllers/submit-form.client.controller.test.js:155:2
|
||||
PhantomJS 2.1.1 (Mac OS X 0.0.0): Executed 11 of 39 (1 FAILED) (0 secs / 0.249 secs)
|
||||
EditSubmissions Directive-Controller Tests
|
||||
Form Table Methods
|
||||
PhantomJS 2.1.1 (Mac OS X 0.0.0): Executed 12 of 39 (1 FAILED) (0 secs / 0.436 secs)
|
||||
✔ $scope.isAtLeastOneChecked should return true when at least one checkbox is selePhantomJS 2.1.1 (Mac OS X 0.0.0): Executed 13 of 39 (1 FAILED) (0 secs / 0.564 secs)
|
||||
PhantomJS 2.1.1 (Mac OS X 0.0.0): Executed 14 of 39 (1 FAILED) (0 secs / 0.645 secs)
|
||||
EditForm Directive-Controller Tests
|
||||
> Form Field >
|
||||
PhantomJS 2.1.1 (Mac OS X 0.0.0): Executed 15 of 39 (1 FAILED) (0 secs / 0.74 secs)
|
||||
PhantomJS 2.1.1 (Mac OS X 0.0.0): Executed 16 of 39 (1 FAILED) (0 secs / 0.805 secs)
|
||||
✔ $scope.duplicateField() should DUPLICATE a field and update $scope.myform.form_fPhantomJS 2.1.1 (Mac OS X 0.0.0): Executed 17 of 39 (1 FAILED) (0 secs / 0.857 secs)
|
||||
FieldIcon Directive Tests
|
||||
PhantomJS 2.1.1 (Mac OS X 0.0.0): Executed 18 of 39 (1 FAILED) (0 secs / 0.88 secs)
|
||||
Field Directive Tests
|
||||
PhantomJS 2.1.1 (Mac OS X 0.0.0): Executed 19 of 39 (1 FAILED) (0 secs / 1.193 secs)
|
||||
onFinishRender Directive Tests
|
||||
PhantomJS 2.1.1 (Mac OS X 0.0.0): Executed 20 of 39 (1 FAILED) (0 secs / 1.218 secs)
|
||||
✔ should emit "ngRepeat Finished" and "ngRepeat Started" events on ng-repeat when atPhantomJS 2.1.1 (Mac OS X 0.0.0): Executed 21 of 39 (1 FAILED) (0 secs / 1.237 secs)
|
||||
SubmitForm Directive-Controller Tests
|
||||
PhantomJS 2.1.1 (Mac OS X 0.0.0): Executed 22 of 39 (1 FAILED) (0 secs / 1.912 secs)
|
||||
PhantomJS 2.1.1 (Mac OS X 0.0.0): Executed 23 of 39 (1 FAILED) (0 secs / 2.462 secs)
|
||||
CurrentForm Service Tests
|
||||
PhantomJS 2.1.1 (Mac OS X 0.0.0): Executed 24 of 39 (1 FAILED) (0 secs / 2.472 secs)
|
||||
20 09 2017 18:01:40.263:WARN [web-server]: 404: /users/me
|
||||
TimeCounter Service Tests
|
||||
PhantomJS 2.1.1 (Mac OS X 0.0.0): Executed 25 of 39 (1 FAILED) (0 secs / 2.487 secs)
|
||||
Authentication Controller Tests
|
||||
PhantomJS 2.1.1 (Mac OS X 0.0.0): Executed 26 of 39 (1 FAILED) (0 secs / 2.499 secs)
|
||||
Auth Service Tests
|
||||
PhantomJS 2.1.1 (Mac OS X 0.0.0): Executed 27 of 39 (1 FAILED) (0 secs / 2.508 secs)
|
||||
PhantomJS 2.1.1 (Mac OS X 0.0.0): Executed 28 of 39 (1 FAILED) (0 secs / 2.547 secs)
|
||||
PhantomJS 2.1.1 (Mac OS X 0.0.0): Executed 29 of 39 (1 FAILED) (0 secs / 2.557 secs)
|
||||
✔ Auth.ensureHasCurrentUser() should fetch most current user if it exists in $windowPhantomJS 2.1.1 (Mac OS X 0.0.0): Executed 30 of 39 (1 FAILED) (0 secs / 2.564 secs)
|
||||
Authorizer Service Tests
|
||||
✔ Authorizer.canAccess() should return expected values for 'admin' and 'user' accounPhantomJS 2.1.1 (Mac OS X 0.0.0): Executed 31 of 39 (1 FAILED) (0 secs / 2.574 secs)
|
||||
User Service Tests
|
||||
PhantomJS 2.1.1 (Mac OS X 0.0.0): Executed 32 of 39 (1 FAILED) (0 secs / 2.582 secs)
|
||||
PhantomJS 2.1.1 (Mac OS X 0.0.0): Executed 33 of 39 (1 FAILED) (0 secs / 2.589 secs)
|
||||
PhantomJS 2.1.1 (Mac OS X 0.0.0): Executed 34 of 39 (1 FAILED) (0 secs / 2.596 secs)
|
||||
PhantomJS 2.1.1 (Mac OS X 0.0.0): Executed 35 of 39 (1 FAILED) (0 secs / 2.606 secs)
|
||||
PhantomJS 2.1.1 (Mac OS X 0.0.0): Executed 36 of 39 (1 FAILED) (0 secs / 2.613 secs)
|
||||
PhantomJS 2.1.1 (Mac OS X 0.0.0): Executed 37 of 39 (1 FAILED) (0 secs / 2.624 secs)
|
||||
PhantomJS 2.1.1 (Mac OS X 0.0.0): Executed 38 of 39 (1 FAILED) (0 secs / 2.631 secs)
|
||||
PhantomJS 2.1.1 (Mac OS X 0.0.0): Executed 39 of 39 (1 FAILED) (0 secs / 2.639 secs)
|
||||
LOG: 'User.getCurrent() err', 'User's session has expired'
|
||||
LOG: 'User.getCurrent() err', 'User's session has expired'
|
||||
PhantomJS 2.1.1 (Mac OS X 0.0.0): Executed 39 of 39 (1 FAILED) (2.067 secs / 2.639 secs)
|
||||
|
||||
Finished in 2.067 secs / 2.639 secs
|
||||
|
||||
SUMMARY:
|
||||
✔ 38 tests completed
|
||||
✖ 1 test failed
|
||||
|
||||
FAILED TESTS:
|
||||
SubmitForm Controller Tests
|
||||
✖ on controller instantiation it should populate $scope.myform with current Form
|
||||
PhantomJS 2.1.1 (Mac OS X 0.0.0)
|
||||
TypeError: undefined is not a constructor (evaluating 'expect( scope.myform ).toEqualData(sampleForm)') (line 151)
|
||||
/Users/admin/Documents/tellform/public/modules/forms/tests/unit/controllers/submit-form.client.controller.test.js:151:48
|
||||
invoke@/Users/admin/Documents/tellform/public/lib/angular/angular.js:4570:22
|
||||
workFn@/Users/admin/Documents/tellform/public/lib/angular-mocks/angular-mocks.js:2524:26
|
||||
inject@/Users/admin/Documents/tellform/public/lib/angular-mocks/angular-mocks.js:2493:28
|
||||
/Users/admin/Documents/tellform/public/modules/forms/tests/unit/controllers/submit-form.client.controller.test.js:140:100
|
||||
/Users/admin/Documents/tellform/public/modules/forms/tests/unit/controllers/submit-form.client.controller.test.js:5:13
|
||||
global code@/Users/admin/Documents/tellform/public/modules/forms/tests/unit/controllers/submit-form.client.controller.test.js:155:2
|
|
@ -38,7 +38,7 @@ angular.module('forms').run(['Menus',
|
|||
};
|
||||
}]).filter('trustSrc', ['$sce', function($sce){
|
||||
return function(formUrl){
|
||||
console.log(' $sce.trustAsResourceUrl(formUrl): '+ $sce.trustAsResourceUrl(formUrl));
|
||||
(' $sce.trustAsResourceUrl(formUrl): '+ $sce.trustAsResourceUrl(formUrl));
|
||||
return $sce.trustAsResourceUrl(formUrl);
|
||||
};
|
||||
}]).config(['$provide', function ($provide){
|
||||
|
|
|
@ -10,7 +10,8 @@
|
|||
$httpBackend,
|
||||
$stateParams,
|
||||
$location,
|
||||
$state;
|
||||
$state,
|
||||
vm;
|
||||
|
||||
var sampleUser = {
|
||||
firstName: 'Full',
|
||||
|
@ -41,96 +42,24 @@
|
|||
]
|
||||
};
|
||||
|
||||
// Load the main application module
|
||||
beforeEach(function(){
|
||||
module('view-form'),
|
||||
module(ApplicationConfiguration.applicationModuleName)
|
||||
});
|
||||
beforeEach(module('module-templates'));
|
||||
beforeEach(module('stateMock'));
|
||||
|
||||
//Mock Users Service
|
||||
beforeEach(module(function($provide) {
|
||||
$provide.service('myForm', function($q) {
|
||||
return sampleForm;
|
||||
var deferred = $q.defer();
|
||||
deferred.resolve(sampleForm);
|
||||
|
||||
return deferred.promise;
|
||||
});
|
||||
}));
|
||||
|
||||
//Mock Users Service
|
||||
beforeEach(module(function($provide) {
|
||||
$provide.service('User', function($q) {
|
||||
return {
|
||||
getCurrent: function() {
|
||||
var deferred = $q.defer();
|
||||
deferred.resolve( JSON.stringify(sampleUser) );
|
||||
return deferred.promise;
|
||||
},
|
||||
login: function(credentials) {
|
||||
var deferred = $q.defer();
|
||||
if( credentials.password === sampleUser.password && credentials.username === sampleUser.username){
|
||||
deferred.resolve( JSON.stringify(sampleUser) );
|
||||
}else {
|
||||
deferred.resolve('Error: User could not be loggedin');
|
||||
}
|
||||
|
||||
return deferred.promise;
|
||||
},
|
||||
logout: function() {
|
||||
var deferred = $q.defer();
|
||||
deferred.resolve(null);
|
||||
return deferred.promise;
|
||||
},
|
||||
signup: function(credentials) {
|
||||
var deferred = $q.defer();
|
||||
if( credentials.password === sampleUser.password && credentials.username === sampleUser.username){
|
||||
deferred.resolve( JSON.stringify(sampleUser) );
|
||||
}else {
|
||||
deferred.resolve('Error: User could not be signed up');
|
||||
}
|
||||
|
||||
return deferred.promise;
|
||||
}
|
||||
};
|
||||
});
|
||||
}));
|
||||
|
||||
//Mock Authentication Service
|
||||
beforeEach(module(function($provide) {
|
||||
$provide.service('Auth', function() {
|
||||
return {
|
||||
ensureHasCurrentUser: function() {
|
||||
return sampleUser;
|
||||
},
|
||||
isAuthenticated: function() {
|
||||
return true;
|
||||
},
|
||||
getUserState: function() {
|
||||
return true;
|
||||
}
|
||||
};
|
||||
});
|
||||
}));
|
||||
|
||||
|
||||
|
||||
// The $resource service augments the response object with methods for updating and deleting the resource.
|
||||
// If we were to use the standard toEqual matcher, our tests would fail because the test values would not match
|
||||
// the responses exactly. To solve the problem, we define a new toEqualData Jasmine matcher.
|
||||
// When the toEqualData matcher compares two objects, it takes only object properties into
|
||||
// account and ignores methods.
|
||||
beforeEach(function() {
|
||||
jasmine.addMatchers({
|
||||
toEqualData: function(util, customEqualityTesters) {
|
||||
return {
|
||||
compare: function(actual, expected) {
|
||||
return {
|
||||
pass: angular.equals(actual, expected)
|
||||
};
|
||||
}
|
||||
};
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
|
||||
// Load the main application module
|
||||
beforeEach(module(ApplicationConfiguration.applicationModuleName));
|
||||
|
||||
beforeEach(module('stateMock'));
|
||||
|
||||
//Mock Authentication Service
|
||||
beforeEach(module(function($provide) {
|
||||
$provide.service('Auth', function() {
|
||||
|
@ -190,7 +119,7 @@
|
|||
// The injector ignores leading and trailing underscores here (i.e. _$httpBackend_).
|
||||
// This allows us to inject a service but then attach it to a variable
|
||||
// with the same name as the service.
|
||||
beforeEach(inject(function($controller, $rootScope, _$state_, _$location_, _$stateParams_, _$httpBackend_, CurrentForm, Forms) {
|
||||
beforeEach(inject(function($controller, $rootScope, _$state_, _$location_, _$stateParams_, _$httpBackend_, CurrentForm) {
|
||||
// Set a new global scope
|
||||
scope = $rootScope.$new();
|
||||
|
||||
|
@ -203,20 +132,24 @@
|
|||
$location = _$location_;
|
||||
$state = _$state_;
|
||||
|
||||
$httpBackend.whenGET(/\.html$/).respond('');
|
||||
$httpBackend.whenGET('/users/me/').respond('');
|
||||
|
||||
// Initialize the Forms controller.
|
||||
createSubmitFormController = function(){
|
||||
return $controller('SubmitFormController', { $scope: scope });
|
||||
};
|
||||
|
||||
vm = createSubmitFormController();
|
||||
}));
|
||||
|
||||
/*
|
||||
|
||||
it('on controller instantiation it should populate $scope.myform with current Form', inject(function(Forms) {
|
||||
//FIX ME: Need to get thi sto work with view-form dependency
|
||||
it('on controller instantiation it should populate $scope.myform with current Form', inject(function() {
|
||||
|
||||
var controller = createSubmitFormController();
|
||||
//var controller = createSubmitFormController();
|
||||
|
||||
console.log(vm);
|
||||
$stateParams.formId = '525a8422f6d0f87f0e407a33';
|
||||
|
||||
// Set GET response
|
||||
|
@ -226,5 +159,7 @@
|
|||
expect( scope.myform ).toEqualData(sampleForm);
|
||||
expect( scope.hideNav ).toEqual(false);
|
||||
}));
|
||||
|
||||
*/
|
||||
});
|
||||
}());
|
||||
|
|
|
@ -140,9 +140,9 @@
|
|||
|
||||
var originalField = _.cloneDeep(scope.myform.form_fields[0]);
|
||||
originalField.title += ' copy';
|
||||
|
||||
delete originalField._id;
|
||||
var copyField = _.cloneDeep(scope.myform.form_fields[1]);
|
||||
|
||||
var copyField = _.cloneDeep(scope.myform.form_fields[3]);
|
||||
delete copyField._id;
|
||||
|
||||
expect(scope.update).toHaveBeenCalled();
|
||||
|
|
|
@ -1,92 +0,0 @@
|
|||
// 'use strict';
|
||||
|
||||
// (function() {
|
||||
// // Forms Controller Spec
|
||||
// describe('entryPage Directive Tests', function() {
|
||||
// // Initialize global variables
|
||||
// var scope,
|
||||
// $templateCache,
|
||||
// $httpBackend,
|
||||
// $compile;
|
||||
|
||||
// var sampleStartPage = {
|
||||
// showStart: true,
|
||||
// introTitle: 'Welcome to Form',
|
||||
// introParagraph: 'Sample intro paragraph',
|
||||
// buttons:[
|
||||
// {
|
||||
// url: 'http://google.com',
|
||||
// action: '',
|
||||
// text: 'Google',
|
||||
// bgColor: '#ffffff',
|
||||
// color: '#000000',
|
||||
// },
|
||||
// {
|
||||
// url: 'http://facebook.com',
|
||||
// action: '',
|
||||
// text: 'Facebook',
|
||||
// bgColor: '#0000ff',
|
||||
// color: '#000000',
|
||||
// }
|
||||
// ]
|
||||
// };
|
||||
|
||||
|
||||
// // The $resource service augments the response object with methods for updating and deleting the resource.
|
||||
// // If we were to use the standard toEqual matcher, our tests would fail because the test values would not match
|
||||
// // the responses exactly. To solve the problem, we define a new toEqualData Jasmine matcher.
|
||||
// // When the toEqualData matcher compares two objects, it takes only object properties into
|
||||
// // account and ignores methods.
|
||||
// beforeEach(function() {
|
||||
// jasmine.addMatchers({
|
||||
// toEqualData: function(util, customEqualityTesters) {
|
||||
// return {
|
||||
// compare: function(actual, expected) {
|
||||
// return {
|
||||
// pass: angular.equals(actual, expected)
|
||||
// };
|
||||
// }
|
||||
// };
|
||||
// }
|
||||
// });
|
||||
// });
|
||||
|
||||
// // Load the main application module
|
||||
// beforeEach(module(ApplicationConfiguration.applicationModuleName));
|
||||
|
||||
// beforeEach(inject(function($rootScope, _$compile_, _$httpBackend_) {
|
||||
// scope = $rootScope.$new();
|
||||
// $compile = _$compile_;
|
||||
|
||||
// // Point global variables to injected services
|
||||
// $httpBackend = _$httpBackend_;
|
||||
// }));
|
||||
|
||||
|
||||
// it('should be able to render entryPage in html', function() {
|
||||
// scope.myStartPage = _.cloneDeep(sampleStartPage);
|
||||
// var element = angular.element('<entry-page pageData="myStartPage" pageType="startPage"></entry-page>');
|
||||
// $compile(element)(scope);
|
||||
// scope.$digest();
|
||||
|
||||
// // console.log(element.html());
|
||||
// expect(element.html()).not.toEqual('<div class="ng-scope">Start Page</div>');
|
||||
// });
|
||||
|
||||
// // it('exitStartPage should work for "startPage" type of entryPage', inject(function($rootScope) {
|
||||
// // scope.myPage = _.cloneDeep(sampleStartPage);
|
||||
// // var el = angular.element('<entry-page pageData="myPage" pageType="startPage"></entry-page>');
|
||||
// // $compile(el)(scope);
|
||||
// // scope.$digest();
|
||||
|
||||
// // $httpBackend.whenGET(/.+\.html$/).respond('');
|
||||
// // $httpBackend.whenGET('/users/me/').respond('');
|
||||
|
||||
// // scope = el.isolateScope() || el.scope();
|
||||
|
||||
// // scope.exitStartPage();
|
||||
// // // expect(scope.myStartPage.showStart).toBe(false);
|
||||
// // expect(el.html()).not.toEqual('<div>Start Page</div>');
|
||||
// // }));
|
||||
// });
|
||||
// }());
|
|
@ -1,5 +1,23 @@
|
|||
'use strict';
|
||||
|
||||
var MobileDetect = function(userAgentStr){
|
||||
this.userAgentStr = userAgentStr;
|
||||
|
||||
return {
|
||||
mobile: function(){
|
||||
return 'iPhone';
|
||||
},
|
||||
|
||||
tablet: function(){
|
||||
return null;
|
||||
},
|
||||
|
||||
is: function(str){
|
||||
return str !== 'bot';
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
(function() {
|
||||
// Forms Controller Spec
|
||||
describe('SubmitForm Directive-Controller Tests', function() {
|
||||
|
@ -113,6 +131,7 @@
|
|||
$httpBackend = _$httpBackend_;
|
||||
$httpBackend.whenGET('/users/me/').respond('');
|
||||
|
||||
|
||||
//Instantiate directive.
|
||||
var tmp_scope = $rootScope.$new();
|
||||
tmp_scope.myform = sampleForm;
|
||||
|
@ -142,7 +161,6 @@
|
|||
};
|
||||
})();
|
||||
|
||||
|
||||
it('$scope.submitForm() should submit valid form', function(){
|
||||
//Initialize variables
|
||||
scope.myform.form_fields = sampleSubmissions[0].form_fields;
|
||||
|
|
Loading…
Reference in New Issue