Source: e2e/fields/FakeField.js

'use strict';

/**
 * @module e2e/fields/FakeField
 */

var util = require('util');
var Field = process.requireTest('lib/e2e/fields/Field.js');

/**
 * Defines a form fake field.
 *
 * FakeField is not really a field, it is just a simple text with a label.
 * Use [Field.get]{@link module:e2e/fields/Field~Field.get} method to get an instance of FakeField.
 *
 * @example
 * var Field = require('@openveo/test').e2e.fields.Field;
 *
 * var myFakeField = Field.get({
 *   type: 'fake',
 *   name: 'My field',
 *   baseElement: element(by.css('form'))
 * });
 *
 * @class FakeField
 * @extends module:e2e/fields/Field~Field
 * @constructor
 * @param {Object} conf A field configuration object
 */
function FakeField(conf) {
  FakeField.super_.call(this, conf);
}

module.exports = FakeField;
util.inherits(FakeField, Field);

/**
 * Gets fake field text.
 *
 * @example
 * myField.getValue().then(function(value) {
 *   console.log('Got text: ' + value);
 * });
 *
 * @return {Promise} Promise resolving with field text
 */
FakeField.prototype.getValue = function() {
  return this.getText();
};

/**
 * Sets field value.
 *
 * Does not do anything as this is not a real field.
 *
 * @param {String} [value=''] Field's value
 * @return {Promise} Promise resolving immediately
 */
FakeField.prototype.setValue = function(value) {
  return protractor.promise.fulfilled();
};

/**
 * Clears field value.
 *
 * Does not do anything as this is not a real field.
 *
 * @return {Promise} Promise resolving immediately
 */
FakeField.prototype.clear = function() {
  return protractor.promise.fulfilled();
};

/**
 * Tests if a field is considered as on error.
 *
 * Does not do anything as this is not a real field.
 *
 * @return {Promise} Promise resolving with false as it is not a real field, it couldn't be in error
 */
FakeField.prototype.isOnError = function() {
  return protractor.promise.fulfilled(false);
};