Newer
Older
li-add-unpaywall / test / run.js
/* eslint-env mocha */

const pkg = require('../package.json');
const business = require('../index.js');
const { expect } = require('chai');

describe(pkg.name + '/index.js', function () {
  describe('#Vérification de l\'ajout des  enrichissement unpaywall au cas où:', function () {
    this.timeout(3000);

    const unpaywallEnrichments = [];

    before(function (done) {
      const docObjects = [
        {
          idIstex: '0123456789012345678901234567890123456789',
          doi: '10.15282/ijame.14.4.2017.7.0368',
        },
        {
          idIstex: '1123456789012345678901234567890123456789',
          doi: '10.1016/S0168-583X(97)00741-6',
        },
        {
          idIstex: '2123456789012345678901234567890123456789',
          doi: '10.1002/abcdefedcba',
        },
        {
          idIstex: '2123456789012345678901234567890123456789',
          doi: '10.1145/1053468.1053470',
        },
      ];
      business.finalJob(docObjects, function () {
        for (const docObject of docObjects) {
          unpaywallEnrichments.push(docObject?.enrichments?.openAccess?.unpaywall);
        }
        done();
      });
    });

    it('Vérifications génériques du résultat', function (done) {
      expect(unpaywallEnrichments[0]).to.not.equal(undefined);
      expect(unpaywallEnrichments[1]).to.not.equal(undefined);
      expect(unpaywallEnrichments[2]).to.equal(undefined);
      done();
    });

    // Check result contain url
    it('L\'enrichissement contient un champs url', function (done) {
      expect(unpaywallEnrichments[0].is_oa).to.equal(true);
      expect(unpaywallEnrichments[0].oa_locations.length).to.be.gte(0);
      expect(unpaywallEnrichments[0].oa_locations[0].url.indexOf('http')).to.be.equal(0);
      expect(unpaywallEnrichments[1].is_oa).to.equal(false);

      done();
    });
  });
});