text: var assert = require('assert');
  var value = '';
  
  Feature('object');
  
  Scenario('should respect property orders', async (I) => {
    I.amOnPage('object.html');
    value = await I.grabAttributeFrom('[data-schemapath^="root"] .row:nth-of-type(1) [data-schemapath^="root."]', 'data-schemapath');
    assert.equal(value, 'root.age');
    value = await I.grabAttributeFrom('[data-schemapath^="root"] .row:nth-of-type(2) [data-schemapath^="root."]', 'data-schemapath');
    assert.equal(value, 'root.name');
    value = await I.grabAttributeFrom('[data-schemapath^="root"] .row:nth-of-type(3) [data-schemapath^="root."]', 'data-schemapath');
    assert.equal(value, 'root.single');
    value = await I.grabAttributeFrom('[data-schemapath^="root"] .row:nth-of-type(4) [data-schemapath^="root."]', 'data-schemapath');
    assert.equal(value, 'root.values');
    value = await I.grabAttributeFrom('[data-schemapath^="root"] .row:nth-of-type(5) [data-schemapath^="root."]', 'data-schemapath');
    assert.equal(value, 'root.zodiac');
  });
  
  Scenario('should validate required properties', async (I) => {
    I.amOnPage('object.html');
    I.see('Value must be at least 18.');
  });
  
  Scenario('should validate also not required properties', async (I) => {
    I.amOnPage('object.html');
    I.see('Value must be at least 3 characters long.');
  });
  