hess-select-profile
Version:
Select a given profile value on the hess energy website https://hessenergy.com
81 lines (76 loc) • 2.26 kB
JavaScript
var request = require('request')
var inspect = require('eyespect').inspector();
var should = require('should');
var path = require('path')
var fs = require('fs')
var rewire = require('rewire')
var index = require('../index')
describe('Get Profile Values wiring', function () {
var data
beforeEach(function () {
data = {
jar: request.jar(),
value: '1111',
viewState: 'fooViewState'
}
})
it('should give error if "jar" parameter is not set', function (done) {
delete data.jar
index(data, function (err, reply) {
should.exist(err)
err.error[0].key.should.eql('jar')
done()
})
})
it('should give error if "value" parameter is not set', function (done) {
delete data.value
index(data, function (err, reply) {
should.exist(err)
err.error[0].key.should.eql('value')
done()
})
})
it('should give error if "viewState" parameter is not set', function (done) {
delete data.viewState
index(data, function (err, reply) {
should.exist(err)
err.error[0].key.should.eql('viewState')
done()
})
})
it('should be wired up correctly', function (done) {
var index = rewire('../index')
index.__set__('request', function (opts, cb) {
var res = {
statusCode: 200
}
var filePath = path.join(__dirname, 'data/multipleProfileValues.html')
var body = fs.readFileSync(filePath, 'utf8')
var err = null
cb(err, res, body)
})
index(data, function (err, reply) {
should.not.exist(err)
should.exist(reply)
done()
})
})
it('should give error if desired profile value does not match current profile value', function (done) {
var index = rewire('../index')
index.__set__('request', function (opts, cb) {
var res = {
statusCode: 200
}
var filePath = path.join(__dirname, 'data/defaultProfileOnly.html')
var body = fs.readFileSync(filePath, 'utf8')
var err = null
cb(err, res, body)
})
index(data, function (err, reply) {
should.exist(err)
err.desiredValue.should.eql(data.value)
err.error.should.eql('current profile value on page does not match desired profile value')
done()
})
})
})