website-to-json
Version:
Converts all websites to JSON data
98 lines (85 loc) • 2.51 kB
JavaScript
;
var sinon = require('sinon')
var should = require('should');
var Promise = require('bluebird')
var _ = require('lodash')
var service = require('../index')
var assert = require('assert')
describe('user manager', function() {
before(function before(done) {
done()
})
xit('make request', function test(done) {
service.extractUrl('twitter.com')
.then(function(result) {
console.log(result);
done()
})
})
it('make request', function test(done) {
var stub = sinon.stub(service, 'processUrlWithRequestAsync', function(config) {
return Promise.resolve({
body: '<p>test</p>'
})
})
service.extractUrl('my_url.com', {
recipes: __dirname + '/recipes.js'
})
.then(function(result) {
assert.equal(result.id, 'my_url')
assert.equal(result.data, 'test')
stub.restore()
done()
})
})
it('make request', function test(done) {
var stub = sinon.stub(service, 'processUrlWithRequestAsync', function(config) {
return Promise.resolve({
body: '<p>test</p>'
})
})
service.extractUrl('my_url.com/id/5', {
recipes: [{
title: 'myurl',
pattern: '(my_url)\.com/(id)/([0-9]+)',
parse: function($) {
return $('p').text()
}
}]
})
.then(function(result) {
assert.equal(result.id, 'my_url_id_5')
assert.equal(result.data, 'test')
stub.restore()
done()
})
})
it('make request and get social websites', function test(done) {
var stub = sinon.stub(service, 'processUrlWithRequestAsync', function(config) {
return Promise.resolve({
body: '<a href="https://www.facebook.com/abcdefgh"Facebook</a><a href="https://www.facebook.com/abcdefgh"Facebook</a>'
})
})
service.extractData('my_url.com/id/5', {})
.then(function(result) {
assert.equal(result.social.facebook, 'https://www.facebook.com/abcdefgh')
stub.restore()
done()
})
})
it('make request and get social websites', function test(done) {
var stub = sinon.stub(service, 'processUrlWithRequestAsync', function(config) {
return Promise.resolve({
body: '<a href="https://www.domain.com/test">Domain</a>'
})
})
service.extractData('my_url.com/id/5', {
social: ['domain.com']
})
.then(function(result) {
assert.equal(result.social.domain, 'https://www.domain.com/test')
stub.restore()
done()
})
})
})