meshblu-core-manager-token
Version:
Meshblu Token Manager
75 lines (60 loc) • 2.27 kB
text/coffeescript
{describe,beforeEach,it,expect} = global
_ = require 'lodash'
mongojs = require 'mongojs'
Datastore = require 'meshblu-core-datastore'
TokenManager = require '..'
describe 'Search Tokens', ->
beforeEach (done) ->
database = mongojs 'token-manager-test', ['tokens']
= new Datastore
database: database
collection: 'tokens'
database.tokens.remove done
beforeEach ->
= 'im-a-pepper'
= resolve: (uuid, callback) => callback(null, uuid)
= new TokenManager {, , }
describe 'when called without a uuid', ->
beforeEach (done) ->
.search {uuid: null}, () => done()
it 'should have an error', ->
expect(.message).to.equal 'Missing uuid'
describe 'basic search', ->
beforeEach (done) ->
tokens = [
{
uuid: 'darth-vader'
metadata:
tag: 'light-saber'
},
{
uuid: 'darth-vader'
metadata:
tag: 'dark-saber'
}
]
.insert tokens, done
describe 'when called with no query', ->
beforeEach (done) ->
.search uuid: 'darth-vader', (error, ) => done error
it 'should return 2 tokens', ->
expect(.length).to.equal 2
it 'should return the correct tokens', ->
expect().to.containSubset [
{metadata: tag: 'light-saber'}
{metadata: tag: 'dark-saber'}
]
expect(_.first().type).to.not.exist
it 'should not have the actual token', ->
_.each , (token) =>
expect(token.hashedToken).to.be.undefined
describe 'when called with a dot notated projection', ->
beforeEach (done) ->
.search uuid: 'darth-vader', query: {'metadata.tag': 'dark-saber'}, (error, ) => done error
it 'should return 1 tokens', ->
expect(.length).to.equal 1
describe 'when called with a non-matching query', ->
beforeEach (done) ->
.search uuid: 'darth-vader', query: {superman: true}, (error, ) => done error
it 'should return 0 tokens', ->
expect(.length).to.equal 0