1
var assert = require('assert')
3
var MongoClient = require('mongodb').MongoClient
5
function unexpected(msg) {
6
assert.ok(false, "unexpected: "+msg)
9
var Registry = require('../lib/registry')
11
suite('Registry', function(){
12
setup(function(done) {
14
MongoClient.connect("mongodb://localhost:27017/pushAppTestDb", function(err, database) {
18
self.db.collection('registry').drop(function(err) {
19
if(err && err.errmsg != 'ns not found') throw err
25
test('insert-and-find', function(done) {
26
var reg = new Registry(this.db)
27
reg.insertToken("N", "T", function() {
28
reg.findToken("N", function(token) {
29
assert.equal(token, "T")
32
unexpected("not-found")
43
test('find-not-found', function(done) {
44
var reg = new Registry(this.db)
45
reg.findToken("N", function() {
54
test('insert-identical-dup', function(done) {
55
var reg = new Registry(this.db)
56
reg.insertToken("N", "T", function() {
57
reg.insertToken("N", "T", function() {
71
test('insert-dup', function(done) {
72
var reg = new Registry(this.db)
73
reg.insertToken("N", "T1", function() {
74
reg.insertToken("N", "T2", function() {
88
test('insert-temp-dup', function(done) {
89
var reg = new Registry(this.db)
90
var findToken = reg.findToken
91
, insertToken = reg.insertToken
93
var insertInvocations = 0
94
reg.findToken = function(nick, foundCb, notFoundCb, errCb) {
95
if (notFoundOnce == 0) {
100
findToken.call(reg, nick, foundCb, notFoundCb, errCb)
102
reg.insertToken = function(nick, token, doneCb, dupCb, errCb) {
104
insertToken.call(reg, nick, token, doneCb, dupCb, errCb)
106
reg.insertToken("N", "T1", function() {
107
reg.insertToken("N", "T2", function() {
108
unexpected("success")
110
assert.equal(insertInvocations, 3)
122
test('remove', function(done) {
123
var reg = new Registry(this.db)
124
reg.insertToken("N", "T", function() {
125
reg.removeToken("N", "T", function() {
126
reg.findToken("N", function(token) {
143
test('remove-exact', function(done) {
144
var reg = new Registry(this.db)
145
reg.insertToken("N", "T1", function() {
146
reg.removeToken("N", "T2", function() {
147
reg.findToken("N", function(token) {
148
assert.equal(token, "T1")
151
unexpected("no-found")
165
test('remove-nop', function(done) {
166
var reg = new Registry(this.db)
167
reg.removeToken("N1", "T1", function() {
168
reg.findToken("N1", function(token) {