UNPKG

just-login-client

Version:

Browser code for the just-login-core and just-login-emailer

65 lines (59 loc) 2.53 kB
var test = require('tap').test var createSession = require('../createSession.js') var EventEmitter = require('events').EventEmitter if (typeof localStorage === "undefined" || localStorage === null) { var LocalStorage = require('node-localstorage').LocalStorage localStorage = new LocalStorage('./fakeLocalStorage') } var jlsid = "justLoginSessionId" //key var fakeSessionId = "fakeSessionId" //value var fakeEmailAddress = "ex@mp.le" var fakeArgApi = {isAuthenticated: function (cb) {cb(null, fakeEmailAddress)}} var newSessionId = "newSessionId" var fakeApi = { continueExistingSession: function (get, cb) { if (get == fakeSessionId) { cb(null, fakeArgApi, fakeSessionId) } else { cb(new Error("u haz error")) } }, createNewSession: function (cb) { cb(null, fakeArgApi, newSessionId) } } test('test createSession', function (t) { t.plan(14) localStorage.setItem(jlsid, fakeSessionId) //set the session id t.equal(localStorage.getItem(jlsid), fakeSessionId, "localStorage works") var tryContinue = new EventEmitter() createSession(fakeApi, tryContinue, function (err, api, session) { t.notOk(err, "no error") t.equal(session, fakeSessionId, "sessionId must be old") //must retrieve session id t.notEqual(session, newSessionId, "sessionId must not be new") t.equal(fakeArgApi, api, "these must be the same") localStorage.removeItem("justLoginSessionId") //delete the session id var tryNew = new EventEmitter() createSession(fakeApi, tryNew, function (err, api, session) { t.notOk(err, "no error") t.notEqual(session, fakeSessionId, "sessionId must not be old") //creates session id t.equal(session, newSessionId, "sessionId must be new") t.equal(fakeArgApi, api, "these must be the same") setTimeout(t.end.bind(t), 3000) //must wait for authenticated event to be called }) tryNew.on('new session', function() {t.ok(true, "created a new session")}) tryNew.on('continue session', function() {t.notOk(true, "did not continue an existing session")}) tryNew.on('authenticated', function (whom) { t.ok(true, "got authenticated") t.equal(whom, fakeEmailAddress, "correct email") }) }) tryContinue.on('new session', function (sessionId) { t.notOk(true, "did not create a new session") t.ok(true, "make plan right length") }) tryContinue.on('continue session', function (sessionId) { t.ok(true, "continued an existing session") t.equal(sessionId, fakeSessionId, "got correct id") }) })