I created an array with objects, array size of 10; in my testing phase I need to enter all 10 array elements with objects; every data will be updated by a button click.
it('22 should create 10 new leads with valid inputs', function(){
asyncLoop({
length : 10,
functionToLoop : function(loop, i){
newLeadButton.click().then(function() {
expect(browser.getLocationAbsUrl()).toMatch('/create');
firstNameField.sendKeys( leadArray2[i+1].firstName );
lastNameField.sendKeys( leadArray2[i+1].lastName );
meetingTimeField.sendKeys( leadArray2[i+1].meetingTime );
emailField.sendKeys( leadArray2[i+1].email );
mobileField.sendKeys( leadArray2[i+1].mobileNumber );
phoneField.sendKeys( leadArray2[i+1].phoneNumber );
closeDateField.sendKeys( leadArray2[i+1].closeDate );
address1Field.sendKeys( leadArray2[i+1].address1 );
address2Field.sendKeys( leadArray2[i+1].address2 );
cityField.sendKeys( leadArray2[i+1].city );
createLeadButton.click().then(function() {
expect(browser.getLocationAbsUrl()).toMatch('/lead');
expect(leadListElems.count()).toMatch(i+6);
loop();
});
});
},
callback : function(){
expect(leadListElems.count()).toMatch(14);
}
});
});
// http://stackoverflow.com/questions/4288759/asynchronous-for-cycle-in-javascript
var asyncLoop = function(o){
var i=-1;
var loop = function(){
i++;
if(i==o.length){o.callback(); return;}
o.functionToLoop(loop, i);
}
loop();//init
}
The issue in this code is that my first array element is not printed, and I require help in printing all 10 array elements with their objects.
var leadArray2=[
{
firstName : '1',
lastName : '1',
meetingTime : '01/12/2016 10:00 am',
email : 'yokname1@gmail.com',
mobileNumber : '9876543210',
phoneNumber : '7894561230',
closeDate : '01/01/2018',
address1 : 'Address Line 1 A',
address2 : 'Address Line 1 B',
city : 'City 1'
},
{
firstName : '2',
lastName : '2',
meetingTime : '02/12/2016 11:00 am',
email : 'yokname2@gmail.com',
mobileNumber : '9876543211',
phoneNumber : '7894561231',
closeDate : '02/01/2017',
address1 : 'Address Line 2 A',
address2 : 'Address Line 2 B',
city : 'City 2'
}, ...................];