nuxt-multifeed-yandex-market
Version:
A Nuxt.js module that generates an XML file for Yandex.Market
54 lines (42 loc) • 1.47 kB
JavaScript
const { Nuxt, Builder, Generator } = require('nuxt')
const config = require('./fixture/nuxt.config')
const path = require('path')
const fs = require('fs-extra')
const oldFs = require('fs')
const timeout = 180 * 1000
const urlFeed = '/yandex-market.xml'
const PORT = 3777
describe('generate', () => {
test('generate xml', async (done) => {
const nuxt = new Nuxt(config)
const filePath = path.resolve(nuxt.options.srcDir, path.join('static', urlFeed))
fs.removeSync(filePath)
const generator = new Generator(nuxt, new Builder(nuxt))
await generator.initiate()
await generator.initRoutes()
expect(fs.readFileSync(filePath, { encoding: 'utf8' })).toMatchSnapshot()
const { errors } = await generator.generate()
fs.removeSync(filePath)
expect(Array.isArray(errors)).toBe(true)
expect(errors.length).toBe(0)
done()
}, timeout)
})
describe('universal', () => {
const request = require('request-promise-native')
const url = path => `http://localhost:${PORT}${path}`
const get = path => request(url(path))
test('check xml', async (done) => {
let nuxt = new Nuxt(config)
await nuxt.ready()
await new Builder(nuxt).build()
nuxt.listen(PORT)
const filePath = path.resolve(nuxt.options.srcDir, path.join('static', urlFeed))
if (oldFs.existsSync(filePath)) {
fs.removeSync(filePath)
}
let html = await get(urlFeed)
expect(html).toMatchSnapshot()
done()
}, timeout)
})