pageclip
Version:
JS Pageclip API client
102 lines (87 loc) • 3.48 kB
JavaScript
const Pageclip = require('pageclip')
const MockServer = require('./mock-server')
const clientVersion = require('../package.json').version
describe("Pageclip.js", function () {
let server, pageclip
beforeEach(function () {
server = new MockServer()
server.listen()
pageclip = new Pageclip('api_abc123ABC123abc123abc123abc12345', {baseURL: server.getUrl()})
})
afterEach(function () {
server.close()
})
describe("token validation", function () {
it("throws when token is invalid", function () {
let fn = () => new Pageclip('not valid')
expect(fn).to.throw()
})
})
describe("::fetch()", function () {
it("returns the data for default form when no form specified", function () {
return pageclip.fetch().then((res) => {
expect(res.status).to.equal(200)
expect(res.data).to.have.length(2)
expect(res.form).to.equal('default')
expect(res.req.method).to.equal('GET')
expect(res.req.headers['authorization']).to.contain('Basic ')
expect(res.req.headers['user-agent']).to.equal(`pageclip.js v${clientVersion}`)
expect(res.req.headers['x-reqmethod']).to.equal('api-client')
expect(res.req.headers['x-reqtransport']).to.equal('api-client')
})
})
it("returns the data for specified form", function () {
return pageclip.fetch('abucket').then((res) => {
expect(res.status).to.equal(200)
expect(res.data).to.have.length(2)
expect(res.form).to.equal('abucket')
})
})
it("returns the error when error", function () {
return pageclip.fetch('fail').then((res) => {
expect(res.status).to.equal(400)
expect(res.errors).to.have.length(1)
expect(res.req.method).to.equal('GET')
expect(res.req.headers['user-agent']).to.equal(`pageclip.js v${clientVersion}`)
expect(res.req.headers['x-reqmethod']).to.equal('api-client')
expect(res.req.headers['x-reqtransport']).to.equal('api-client')
})
})
})
describe("::send()", function () {
let data
it("sends data for default form when none specified", function () {
data = {things: 'stuff'}
return pageclip.send(data).then((res) => {
expect(res.status).to.equal(200)
expect(res.data).to.equal('ok')
expect(res.form).to.equal('default')
expect(res.req.body).to.eql(data)
expect(res.req.method).to.equal('PUT')
expect(res.req.headers['authorization']).to.contain('Basic ')
expect(res.req.headers['user-agent']).to.equal(`pageclip.js v${clientVersion}`)
expect(res.req.headers['x-reqmethod']).to.equal('api-client')
expect(res.req.headers['x-reqtransport']).to.equal('api-client')
})
})
it("sends data to the specified form", function () {
data = {things: 'stuff'}
return pageclip.send('abucket', data).then((res) => {
expect(res.status).to.equal(200)
expect(res.data).to.equal('ok')
expect(res.form).to.equal('abucket')
expect(res.req.body).to.eql(data)
expect(res.req.method).to.equal('PUT')
})
})
it("returns status and errors when there are errors", function () {
data = {things: 'stuff'}
return pageclip.send('fail', data).then((res) => {
expect(res.status).to.equal(400)
expect(res.errors).to.have.length(1)
expect(res.req.method).to.equal('PUT')
})
})
})
})