datafire
Version: 
[![Travis][travis-image]][travis-link] [![Downloads][downloads-image]][npm-link] [![NPM version][npm-image]][npm-link] [](https://www.npmjs.com/package/datafire) <!--[![Dependency status][deps-i
50 lines (45 loc) • 1.45 kB
JavaScript
;
var expect = require('chai').expect;
var datafire = require('../entry');
var PORT = 3333;
var RSS_BODY = '\n<?xml version="1.0" encoding="UTF-8"?>\n<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">\n  <channel>\n    <title>ACME RSS</title>\n    <link>http://www.acme.com</link>\n    <item>\n      <link>https://acme.com/link</link>\n      <description>An article</description>\n    </item>\n  </channel>\n</rss>\n\n';
var project = new datafire.Project({
  paths: {
    '/rss': {
      get: {
        action: {
          handler: function handler(input) {
            return new datafire.Response({
              headers: {
                'Content-Type': 'application/rss+xml'
              },
              statusCode: 200,
              body: RSS_BODY
            });
          }
        }
      }
    }
  },
  openapi: {
    host: 'localhost:' + PORT,
    schemes: ['http'],
    info: {
      'x-datafire': { type: 'rss' }
    }
  }
});
describe('RSS', function () {
  before(function () {
    return project.serve(PORT);
  });
  after(function () {
    project.server.close();
  });
  it('should return a JS object', function () {
    return project.integration.actions.rss.get().then(function (feed) {
      expect(feed.feed).to.be.an('object');
      expect(feed.feed.entries.length).to.equal(1);
    });
  });
});