node-ciscospark
Version:
Super-Simple Lightweight Javascript wrapper for Cisco Spark API
112 lines (98 loc) • 3.78 kB
JavaScript
;
/* eslint-env mocha */
/* eslint-disable no-unused-expressions */
var Spark = require('../src');
var expect = require('chai').expect;
var TEST_ACCESSTOKEN = '**TestAccessToken**';
var TEST_USERAGENT = '**TestUsergent**';
var TEST_ROOM_ID = '**TestRoomId**';
var TEST_MEMBERSHIP_ID = '**TestMemberId**';
/** @test {Memberships} */
describe('CiscoSpark.memberships', function () {
before(function () {
this.spark = new Spark(TEST_ACCESSTOKEN, TEST_USERAGENT);
this.spark.requestCallback = function (options, callback) {
return callback(null, {
options: options,
timestamp: Date.now()
});
};
this.instance = this.spark.memberships;
});
/** @test {Memberships#list} */
it('should list Memberships in a Room', function (done) {
var _this = this;
this.instance.list(TEST_ROOM_ID, function (err, response) {
expect(err).to.be.not.ok;
expect(response.options.headers.Authorization).to.be.equal('Bearer ' + TEST_ACCESSTOKEN);
expect(response.options.headers['User-Agent']).to.be.equal(TEST_USERAGENT);
expect(response.options.url).to.be.equal(_this.instance.apiUrl);
expect(response.options.method).to.be.equal('GET');
expect(response.options.qs.roomId).to.be.equal(TEST_ROOM_ID);
done();
});
});
/** @test {Memberships#create} */
it('should create a Team Membership', function (done) {
var email = 'test@example.com';
this.instance.create({
roomId: TEST_ROOM_ID,
personEmail: email
}, function (err, response) {
expect(err).to.be.not.ok;
expect(response.options.method).to.be.equal('POST');
expect(response.options.form.roomId).to.be.equal(TEST_ROOM_ID);
expect(response.options.form.personEmail).to.be.equal(email);
done();
});
});
/** @test {Memberships#get} */
it('should get Team Membership Details', function (done) {
var _this2 = this;
this.instance.get(TEST_MEMBERSHIP_ID, function (err, response) {
expect(err).to.be.not.ok;
expect(response.options.url).to.be.equal(_this2.instance.apiUrl + '/' + TEST_MEMBERSHIP_ID);
expect(response.options.method).to.be.equal('GET');
done();
});
});
/** @test {Memberships#update} */
it('should update Team Membership Details', function (done) {
var _this3 = this;
this.instance.update(TEST_MEMBERSHIP_ID, { isModerator: true }, function (err, response) {
expect(err).to.be.not.ok;
expect(response.options.url).to.be.equal(_this3.instance.apiUrl + '/' + TEST_MEMBERSHIP_ID);
expect(response.options.json.isModerator).to.be.ok;
expect(response.options.method).to.be.equal('PUT');
done();
});
});
/** @test {Memberships#delete} */
it('should delete a Team Membership', function (done) {
var _this4 = this;
this.instance.delete(TEST_MEMBERSHIP_ID, function (err, response) {
expect(err).to.be.not.ok;
expect(response.options.url).to.be.equal(_this4.instance.apiUrl + '/' + TEST_MEMBERSHIP_ID);
expect(response.options.method).to.be.equal('DELETE');
done();
});
});
describe('- Test Errors', function () {
/** @test {Memberships#create} */
it('should error when create without TeamId', function (done) {
this.instance.create(null, function (err, response) {
expect(err).to.be.instanceOf(Error);
expect(response).to.be.not.ok;
done();
});
});
/** @test {Memberships#create} */
it('should error when create without PersonId or EMail', function (done) {
this.instance.create({ roomId: TEST_ROOM_ID }, function (err, response) {
expect(err).to.be.instanceOf(Error);
expect(response).to.be.not.ok;
done();
});
});
});
});