57 lines
1.3 KiB
JavaScript
57 lines
1.3 KiB
JavaScript
'use strict';
|
|
|
|
var chai = chai || require('chai');
|
|
var should = chai.should();
|
|
var bitcore = bitcore || require('bitcore');
|
|
var buffertools = bitcore.buffertools;
|
|
var Profile = require('../js/models/Profile')
|
|
var sinon = require('sinon');
|
|
var FakeStorage = function() {};
|
|
|
|
describe('Profile model', function() {
|
|
var email = 'email@pepe.com';
|
|
var password = 'iamnotsatoshi';
|
|
var storage = new FakeStorage();
|
|
var opts = {
|
|
email: email,
|
|
};
|
|
|
|
beforeEach(function() {
|
|
storage.getItem = sinon.stub();
|
|
storage.setFromObj = sinon.stub();
|
|
storage.setFromObj.yields(null);
|
|
});
|
|
|
|
it('should fail create an instance', function() {
|
|
(function() {
|
|
new Profile({
|
|
email: email,
|
|
}, storage)
|
|
}).should.throw('Illegal Arg');
|
|
});
|
|
|
|
it('should create an instance', function() {
|
|
var p = new Profile({
|
|
email: email,
|
|
}, password, storage);
|
|
should.exist(p);
|
|
});
|
|
|
|
it('#fromObj #toObj round trip', function() {
|
|
var p = new Profile(opts, password, storage);
|
|
var p2 = Profile.fromObj(p.toObj(), password, storage);
|
|
p2.should.deep.equal(p);
|
|
});
|
|
|
|
it('#store', function(done) {
|
|
var p = new Profile(opts, password, storage);
|
|
p.store(function(err) {
|
|
storage.setFromObj.getCall(0).args[1].should.deep.equal(p.toObj());
|
|
should.not.exist(err);
|
|
done();
|
|
})
|
|
});
|
|
|
|
|
|
|
|
});
|