@extractus/feed-extractor
Version:
To read and normalize RSS/ATOM/JSON feed data
42 lines (34 loc) • 1.32 kB
JavaScript
// xmlparser.test
/* eslint-env jest */
import { readFileSync } from 'node:fs'
import { validate, isRSS, isAtom, xml2obj } from './xmlparser.js'
describe('test methods from `xmlparser`', () => {
test('test validate(well format xml)', async () => {
const xmlData = '<xml><atag id="12">value</atag></xml>'
const result = validate(xmlData)
expect(result).toBe(true)
})
test('test validate(bad format xml)', async () => {
const xmlData = '<xml><atag id="12">value</btag></xml>'
const result = validate(xmlData)
expect(result).toBe(false)
})
test('test validate(standard rss content)', async () => {
const xml = readFileSync('test-data/rss-feed-standard.xml', 'utf8')
const xmlData = xml2obj(xml)
expect(isRSS(xmlData)).toBe(true)
expect(isAtom(xmlData)).toBe(false)
})
test('test validate(standard atom content)', async () => {
const xml = readFileSync('test-data/atom-feed-standard.xml', 'utf8')
const xmlData = xml2obj(xml)
expect(isAtom(xmlData)).toBe(true)
expect(isRSS(xmlData)).toBe(false)
})
test('test xml2obj(well format xml)', async () => {
const xmlData = '<xml><atag id="12">value</atag></xml>'
const result = xml2obj(xmlData)
expect(result).toBeInstanceOf(Object)
expect(result.xml).toBeInstanceOf(Object)
})
})