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.
mercury-parser/src/extractors/generic/content/scoring/get-weight.test.js

60 lines
1.8 KiB
JavaScript

import assert from 'assert'
import cheerio from 'cheerio'
import HTML from './fixtures/get-weight'
import {
getWeight
} from './index'
describe('Generic Extractor Utils', () => {
describe('getWeight(node)', () => {
it("returns a score of 25 if node has positive id", () => {
const $ = cheerio.load(HTML.positiveId)
assert.equal(getWeight($('div')), 25)
})
it("returns a score of -25 if node has negative id", () => {
const $ = cheerio.load(HTML.negativeId)
assert.equal(getWeight($('div')), -25)
})
it("returns a score of 25 if node has positive class", () => {
const $ = cheerio.load(HTML.positiveClass)
assert.equal(getWeight($('div')), 25)
})
it("returns a score of -25 if node has negative class", () => {
const $ = cheerio.load(HTML.negativeClass)
assert.equal(getWeight($('div')), -25)
})
it("returns a score of 25 if node has both positive id and class", () => {
const $ = cheerio.load(HTML.positiveIdAndClass)
assert.equal(getWeight($('div')), 25)
})
it("returns a score of 25 if node has pos id and neg class", () => {
// is this really wanted? id="entry" class="adbox"
// should get positive score?
const $ = cheerio.load(HTML.positiveIdNegClass)
assert.equal(getWeight($('div')), 25)
})
it("returns a score of 10 if node has pos img class", () => {
const $ = cheerio.load(HTML.positivePhotoClass)
assert.equal(getWeight($('div')), 10)
})
it("returns a score of 35 if node has pos id pos img class", () => {
const $ = cheerio.load(HTML.positiveIdAndPhoto)
assert.equal(getWeight($('div')), 35)
})
it("adds an add'l 25 (total 50) if node uses entry-content-asset class", () => {
const $ = cheerio.load(HTML.entryContentAsset)
assert.equal(getWeight($('div')), 50)
})
})
})