All files / lib commerce.js

100% Statements 27/27
100% Branches 12/12
100% Functions 9/9
100% Lines 27/27

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129        1x 1x             1x 185x               1x 111x               1x 117x                               1x 92x 92x 92x 92x   92x 1x     91x   91x                                                                   1x 224x               1x 229x               1x 226x               1x 87x     1x     1x  
/**
 *
 * @namespace faker.commerce
 */
var Commerce = function (faker) {
  var self = this;
 
  /**
   * color
   *
   * @method faker.commerce.color
   */
  self.color = function() {
      return faker.random.arrayElement(faker.definitions.commerce.color);
  };
 
  /**
   * department
   *
   * @method faker.commerce.department
   */
  self.department = function() {
      return faker.random.arrayElement(faker.definitions.commerce.department);
  };
 
  /**
   * productName
   *
   * @method faker.commerce.productName
   */
  self.productName = function() {
      return faker.commerce.productAdjective() + " " +
              faker.commerce.productMaterial() + " " +
              faker.commerce.product();
  };
 
  /**
   * price
   *
   * @method faker.commerce.price
   * @param {number} min
   * @param {number} max
   * @param {number} dec
   * @param {string} symbol
   *
   * @return {string}
   */
  self.price = function(min, max, dec, symbol) {
      min = min || 1;
      max = max || 1000;
      dec = dec === undefined ? 2 : dec;
      symbol = symbol || '';
 
      if (min < 0 || max < 0) {
          return symbol + 0.00;
      }
 
      var randValue = faker.random.number({ max: max, min: min });
 
      return symbol + (Math.round(randValue * Math.pow(10, dec)) / Math.pow(10, dec)).toFixed(dec);
  };
 
  /*
  self.categories = function(num) {
      var categories = [];
 
      do {
          var category = faker.random.arrayElement(faker.definitions.commerce.department);
          if(categories.indexOf(category) === -1) {
              categories.push(category);
          }
      } while(categories.length < num);
 
      return categories;
  };
 
  */
  /*
  self.mergeCategories = function(categories) {
      var separator = faker.definitions.separator || " &";
      // TODO: find undefined here
      categories = categories || faker.definitions.commerce.categories;
      var commaSeparated = categories.slice(0, -1).join(', ');
 
      return [commaSeparated, categories[categories.length - 1]].join(separator + " ");
  };
  */
 
  /**
   * productAdjective
   *
   * @method faker.commerce.productAdjective
   */
  self.productAdjective = function() {
      return faker.random.arrayElement(faker.definitions.commerce.product_name.adjective);
  };
 
  /**
   * productMaterial
   *
   * @method faker.commerce.productMaterial
   */
  self.productMaterial = function() {
      return faker.random.arrayElement(faker.definitions.commerce.product_name.material);
  };
 
  /**
   * product
   *
   * @method faker.commerce.product
   */
  self.product = function() {
      return faker.random.arrayElement(faker.definitions.commerce.product_name.product);
  };
 
  /**
   * productDescription
   *
   * @method faker.commerce.productDescription
   */
  self.productDescription = function() {
      return faker.random.arrayElement(faker.definitions.commerce.product_description);
  };
 
  return self;
};
 
module['exports'] = Commerce;