Commit 5f28dc2d authored by Evren Kutar's avatar Evren Kutar

form service test cases fixed

parent 5529d3a8
...@@ -15,7 +15,9 @@ form_generator.factory('Generator', function ($http, $q, $log, $location, $modal ...@@ -15,7 +15,9 @@ form_generator.factory('Generator', function ($http, $q, $log, $location, $modal
generator.generate = function (scope, data) { generator.generate = function (scope, data) {
// if no form in response (in case of list and single item request) return scope // if no form in response (in case of list and single item request) return scope
if (!data.forms) { return scope; } if (!data.forms) {
return scope;
}
// prepare scope form, schema and model from response object // prepare scope form, schema and model from response object
angular.forEach(data.forms, function (value, key) { angular.forEach(data.forms, function (value, key) {
...@@ -40,7 +42,7 @@ form_generator.factory('Generator', function ($http, $q, $log, $location, $modal ...@@ -40,7 +42,7 @@ form_generator.factory('Generator', function ($http, $q, $log, $location, $modal
generator.group = function (formObject) { generator.group = function (formObject) {
return formObject; return formObject;
}; };
generator.prepareFormItems = function(scope) { generator.prepareFormItems = function (scope) {
/** /**
* prepareforms checks input types and convert if necessary * prepareforms checks input types and convert if necessary
*/ */
...@@ -52,11 +54,11 @@ form_generator.factory('Generator', function ($http, $q, $log, $location, $modal ...@@ -52,11 +54,11 @@ form_generator.factory('Generator', function ($http, $q, $log, $location, $modal
scope.model[v] = generator.dateformatter(scope.model[v]); scope.model[v] = generator.dateformatter(scope.model[v]);
// seek for datepicker field and initialize datepicker // seek for datepicker field and initialize datepicker
scope.$watch($('#'+v), function(){ scope.$watch($('#' + v), function () {
$timeout(function () { $timeout(function () {
jQuery('#' + v).datepicker({ jQuery('#' + v).datepicker({
dateFormat: "dd.mm.yy", dateFormat: "dd.mm.yy",
onSelect: function(date){ onSelect: function (date) {
scope.model[v] = date; scope.model[v] = date;
} }
}); });
...@@ -89,7 +91,7 @@ form_generator.factory('Generator', function ($http, $q, $log, $location, $modal ...@@ -89,7 +91,7 @@ form_generator.factory('Generator', function ($http, $q, $log, $location, $modal
}); });
}); });
}), }),
onChange: function(modelValue,form) { onChange: function (modelValue, form) {
scope.model[v] = modelValue; scope.model[v] = modelValue;
} }
}; };
...@@ -114,13 +116,20 @@ form_generator.factory('Generator', function ($http, $q, $log, $location, $modal ...@@ -114,13 +116,20 @@ form_generator.factory('Generator', function ($http, $q, $log, $location, $modal
scope[k.type][k.title] = { scope[k.type][k.title] = {
title: k.title, title: k.title,
form: [], form: [],
schema: {properties: {}, required: [], title: k.title, type: "object", formType: k.type, model_name: v}, schema: {
properties: {},
required: [],
title: k.title,
type: "object",
formType: k.type,
model_name: v
},
url: scope.url url: scope.url
}; };
scope[k.type][k.title].model = scope.model[v] != null ? scope.model[v] : {}; scope[k.type][k.title].model = scope.model[v] != null ? scope.model[v] : {};
angular.forEach(k.schema , function (item) { angular.forEach(k.schema, function (item) {
scope[k.type][k.title].schema.properties[item.name] = item; scope[k.type][k.title].schema.properties[item.name] = item;
// if model is empty object then fill it with scope model item // if model is empty object then fill it with scope model item
...@@ -153,7 +162,9 @@ form_generator.factory('Generator', function ($http, $q, $log, $location, $modal ...@@ -153,7 +162,9 @@ form_generator.factory('Generator', function ($http, $q, $log, $location, $modal
}; };
generator.dateformatter = function (formObject) { generator.dateformatter = function (formObject) {
var ndate = new Date(formObject); var ndate = new Date(formObject);
if (ndate == 'Invalid Date') {return ''} if (ndate == 'Invalid Date') {
return ''
}
var newdatearray = [ndate.getDate(), ndate.getMonth(), ndate.getFullYear()]; var newdatearray = [ndate.getDate(), ndate.getMonth(), ndate.getFullYear()];
return newdatearray.join('.'); return newdatearray.join('.');
}; };
...@@ -214,14 +225,17 @@ form_generator.factory('Generator', function ($http, $q, $log, $location, $modal ...@@ -214,14 +225,17 @@ form_generator.factory('Generator', function ($http, $q, $log, $location, $modal
data.object_id = $scope.object_id; data.object_id = $scope.object_id;
//data.form = get_diff; //data.form = get_diff;
} }
$http.post(generator.makeUrl($scope.url), data)
.success() return $http.post(generator.makeUrl($scope.url), data);
.then(function(res){ //.success(function () {
if(res.data.client_cmd){ //
console.log("record fin"); //})
$location.path($scope.form_params.model); //.then(function (res) {
} // if (res.data.client_cmd) {
}); // console.log("record fin");
// $location.path($scope.form_params.model);
// }
//});
}; };
return generator; return generator;
}); });
...@@ -244,7 +258,7 @@ form_generator.controller('ModalCtrl', function ($scope, $modalInstance, Generat ...@@ -244,7 +258,7 @@ form_generator.controller('ModalCtrl', function ($scope, $modalInstance, Generat
$scope.$broadcast('schemaFormValidate'); $scope.$broadcast('schemaFormValidate');
console.log(form.$valid); console.log(form.$valid);
//if(form.$valid){ //if(form.$valid){
if(1==1){ if (1 == 1) {
// send form to modalinstance result function // send form to modalinstance result function
$modalInstance.close($scope); $modalInstance.close($scope);
...@@ -284,12 +298,12 @@ form_generator.directive('modalForNodes', function ($modal) { ...@@ -284,12 +298,12 @@ form_generator.directive('modalForNodes', function ($modal) {
// subfix will be removed // subfix will be removed
//var subfix = scope.schema.title.replace(/([a-z])([A-Z])/g, '$1_$2').toLowerCase(); //var subfix = scope.schema.title.replace(/([a-z])([A-Z])/g, '$1_$2').toLowerCase();
if (childmodel.schema.formType == 'Node'){ if (childmodel.schema.formType == 'Node') {
scope.$parent.model[childmodel.schema.model_name] = childmodel.model; scope.$parent.model[childmodel.schema.model_name] = childmodel.model;
} }
if (childmodel.schema.formType == 'ListNode'){ if (childmodel.schema.formType == 'ListNode') {
debugger; debugger;
if (scope.$parent.model[childmodel.schema.model_name] == null){ if (scope.$parent.model[childmodel.schema.model_name] == null) {
scope.$parent.model[childmodel.schema.model_name] = []; scope.$parent.model[childmodel.schema.model_name] = [];
} }
scope.$parent.model[childmodel.schema.model_name].push(childmodel.model); scope.$parent.model[childmodel.schema.model_name].push(childmodel.model);
......
...@@ -18,13 +18,43 @@ describe('form service module', function () { ...@@ -18,13 +18,43 @@ describe('form service module', function () {
function (Generator) { function (Generator) {
expect(Generator.generate).not.toBe(null); expect(Generator.generate).not.toBe(null);
var scope = {form_params: {object_id: '123456'}};
var data = {
forms: {
form: ['email', 'id', 'name'],
schema: {
properties: {
email: {title: 'email', type: 'email'},
id: {title: 'id', type: 'int'},
name: {title: 'name', type: 'string'}
}, required: [], type: 'object', title: 'servicetest'
},
model: {
email: 'test@test.com', id: 2, name: 'travolta'
}
},
token: "b1d8fa68ae3d47bdb580a89f76192447"
};
var form_json = { var form_json = {
email: 'test@test.com', form_params: {object_id: '123456'},
id: 2, form: ['email', 'id', 'name'],
name: 'travolta' schema: {
properties: {
email: {title: 'email', type: 'email'},
id: {title: 'id', type: 'number'},
name: {title: 'name', type: 'string'}
}, required: [], type: 'object', title: 'servicetest'
},
model: {email: 'test@test.com', id: 2, name: 'travolta'},
token: "b1d8fa68ae3d47bdb580a89f76192447",
initialModel: {email: 'test@test.com', id: 2, name: 'travolta'},
object_id: '123456'
}; };
var form_generated = Generator.generate(form_json); var form_generated = Generator.generate(scope, data);
expect(form_generated).toEqual(form_json); expect(form_generated).toEqual(form_json);
}]) }])
); );
...@@ -88,8 +118,16 @@ describe('form service module', function () { ...@@ -88,8 +118,16 @@ describe('form service module', function () {
$httpBackend.expectPOST(RESTURL.url + 'student/add') $httpBackend.expectPOST(RESTURL.url + 'student/add')
.respond(200, {data: 'OK'}); .respond(200, {data: 'OK'});
var cred = {email: 'test@test.com'}; var scope = {
Generator.submit({url: 'student/add', form_params: cred}) model: {email: 'test@test.com'},
form_params: {cmd: 'add', model: 'testmodel'},
token: '123456',
url: 'student/add'
};
Generator.submit(scope)
.success(function(){
})
.then(function (data) { .then(function (data) {
expect(data.data).toEqual({data: 'OK'}); expect(data.data).toEqual({data: 'OK'});
}); });
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment