Manual Reference Source Test

tests/imageloader.spec.js

import Beloader from 'beloader';

describe('Image loader', function () {
  it('should initialize image container', function () {
    var loader = new Beloader();
    var img = loader.fetch('image', 'https://upload.wikimedia.org/wikipedia/commons/d/d9/Test.png');

    return img.loaderReady.then(item => {
      item.image.nodeName.should.equal('IMG');
    });
  });

  it('should load image sync with attributes', function () {
    var loader = new Beloader();
    var img = loader.fetch('image', {
      url: 'https://upload.wikimedia.org/wikipedia/commons/d/d9/Test.png',
      async: false,
      attributes: {
        alt: 'fixture'
      }
    });

    return img.promise.then(item => {
      item.image.src.should.equal('https://upload.wikimedia.org/wikipedia/commons/d/d9/Test.png');
      item.image.alt.should.equal('fixture');
    });
  });

  it('should load image async as blob', function () {
    var loader = new Beloader();

    return loader.fetch('img', 'https://upload.wikimedia.org/wikipedia/commons/d/d9/Test.png')
      .promise.then(item => {
        item.image.src.split('blob:').length.should.equal(2);
      });
  });

  it('should load image async as base64', function () {
    var loader = new Beloader();

    return loader.fetch('img', {
      url: 'https://upload.wikimedia.org/wikipedia/commons/d/d9/Test.png',
      base64: true
    })
      .promise.then(item => {
        item.image.src.split('base64,').length.should.equal(2);
      });
  });

  it('should throw an error', function () {
    var loader = new Beloader();

    expect(loader.fetch.bind('loader', 'img')).to.throw(TypeError);
  });
});