You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
63 lines
1.6 KiB
JavaScript
63 lines
1.6 KiB
JavaScript
import assert from 'assert';
|
|
import cheerio from 'cheerio';
|
|
|
|
import HTML from './fixtures/html';
|
|
|
|
import GenericLeadImageUrlExtractor from './extractor';
|
|
|
|
describe('GenericLeadImageUrlExtractor', () => {
|
|
describe('extract({ $, content, metaCache })', () => {
|
|
it('returns og:image first', () => {
|
|
const $ = cheerio.load(HTML.og.test);
|
|
const content = $('*').first();
|
|
const metaCache = ['og:image'];
|
|
|
|
const result =
|
|
GenericLeadImageUrlExtractor.extract(
|
|
{ $, content, metaCache }
|
|
);
|
|
|
|
assert.equal(result, HTML.og.result);
|
|
});
|
|
|
|
it('returns twitter:image', () => {
|
|
const $ = cheerio.load(HTML.twitter.test);
|
|
const content = $('*').first();
|
|
const metaCache = ['twitter:image'];
|
|
|
|
const result =
|
|
GenericLeadImageUrlExtractor.extract(
|
|
{ $, content, metaCache }
|
|
);
|
|
|
|
assert.equal(result, HTML.twitter.result);
|
|
});
|
|
|
|
it('finds images based on scoring', () => {
|
|
const $ = cheerio.load(HTML.scoring.test);
|
|
const content = $('*').first();
|
|
const metaCache = [];
|
|
|
|
const result =
|
|
GenericLeadImageUrlExtractor.extract(
|
|
{ $, content, metaCache }
|
|
);
|
|
|
|
assert.equal(result, HTML.scoring.result);
|
|
});
|
|
|
|
it('returns image based on selectors', () => {
|
|
const $ = cheerio.load(HTML.selectors.test);
|
|
const content = $('*').first();
|
|
const metaCache = [];
|
|
|
|
const result =
|
|
GenericLeadImageUrlExtractor.extract(
|
|
{ $, content, metaCache }
|
|
);
|
|
|
|
assert.equal(result, HTML.selectors.result);
|
|
});
|
|
});
|
|
});
|