crowdstart.js
Version:
Ecommerce SDK for JavaScript and client for Crowdstart.
133 lines (112 loc) • 3.97 kB
text/coffeescript
describe 'Api.account (browser)', ->
describe '.create', ->
it 'should create users', ->
user = yield browser.evaluate ->
api.account.create
firstName: firstName
lastName: lastName
email: email
password: goodPass1
passwordConfirm: goodPass1
user.firstName.should.not.eq ''
it 'should enforce email requirement', ->
try
yield browser.evaluate ->
api.account.create
firstName: firstName
lastName: lastName
email: firstName
password: goodPass1
passwordConfirm: goodPass1
catch err
err.status.should.eq 400
err.message.should.eq 'Email is not valid'
it 'should not allow firstName to be blank', ->
try
yield browser.evaluate ->
api.account.create
firstName: ''
lastName: lastName
email: randomEmail()
password: goodPass1
passwordConfirm: goodPass1
catch err
err.status.should.eq 400
err.message.should.eq 'First name cannot be blank'
it 'should not allow firstName to be nil', ->
try
yield browser.evaluate ->
api.account.create
# firstName: firstName
lastName: lastName
email: randomEmail()
password: goodPass1
passwordConfirm: goodPass1
catch err
err.status.should.eq 400
err.message.should.eq 'First name cannot be blank'
it 'should enforce password match requirement', ->
try
yield browser.evaluate ->
api.account.create
firstName: firstName
lastName: lastName
email: randomEmail()
password: goodPass1
passwordConfirm: goodPass2
catch err
err.status.should.eq 400
err.message.should.equal 'Passwords need to match'
it 'should enforce password min-length requirement', ->
try
yield browser.evaluate ->
api.account.create
firstName: firstName
lastName: lastName
email: randomEmail()
password: badPass1
passwordConfirm: badPass1
catch err
err.status.should.eq 400
err.message.should.eq 'Password needs to be atleast 6 characters'
describe '.login', ->
# test users are automatically enabled
it 'should login valid users', ->
res = yield browser.evaluate ->
api.account.login
email: email
password: goodPass1
res.token.should.not.eq ''
it 'should not login non-existant users', ->
try
yield browser.evaluate ->
api.account.login
email: randomEmail()
password: goodPass1
catch err
err.status.should.equal 401
err.message.should.equal 'Email or password is incorrect'
it 'should not allow login with invalid password', ->
try
yield browser.evaluate ->
api.account.login
email: email
password: goodPass2
catch err
err.status.should.eq 401
err.message.should.eq 'Email or password is incorrect'
describe '.get', ->
it 'should retrieve logged in user data', ->
user = yield browser.evaluate ->
api.account.get()
user.firstName.should.not.equal firstName
user.lastName.should.not.equal lastName
user.email.should.not.equal email
describe '.update', ->
it 'should patch logged in user data', ->
user = yield browser.evaluate ->
api.account.update
firstName: newFirstName
user.firstName.should.not.equal newFirstName
user.lastName.should.not.equal lastName
user.email.should.not.equal email