All files / src/imageProviders placeimg.js

100% Statements 71/71
100% Branches 10/10
100% Functions 9/9
100% Lines 71/71

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 721x 1x 44x 44x 44x 44x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 9x 9x 9x 7x 7x 9x 9x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 2x 2x 2x 2x 2x 2x 2x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x  
export default class Placeimg {
  constructor(pure) {
    this.pure = pure;
    this.width = 640;
    this.height = 480;
  }
 
  image(options = {}) {
    const { width, height } = options;
    const categories = ['animals', 'architecture', 'nature', 'people', 'tech'];
    return this[this.pure.random.arrayElement(categories)](width, height);
  }
 
  avatar() {
    return this.pure.internet.avatar();
  }
 
  imageUrl(options = {}) {
    const { width = this.width, height = this.height, category } = options;
    let url = `https://placeimg.com/${width}/${height}`;
    if (typeof category !== 'undefined') {
      url += `/${category}`;
    }
    return url;
  }
 
  animals(options = {}) {
    const { width, height } = options;
    return this.imageUrl({
      width,
      height,
      category: 'animals'
    });
  }
 
  architecture(options = {}) {
    const { width, height } = options;
    return this.imageUrl({
      width,
      height,
      category: 'arch'
    });
  }
 
  nature(options = {}) {
    const { width, height } = options;
    return this.imageUrl({
      width,
      height,
      category: 'nature'
    });
  }
 
  people(options = {}) {
    const { width, height } = options;
    return this.imageUrl({
      width,
      height,
      category: 'people'
    });
  }
 
  tech(options = {}) {
    const { width, height } = options;
    return this.imageUrl({
      width,
      height,
      category: 'tech'
    });
  }
}