UNPKG

@kano/web-components

Version:

Shared web-components for the Kano ecosystem.

90 lines (80 loc) 2.65 kB
<html> <head> <meta charset="UTF-8"> <title>kano-session test</title> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0"> <script src="../../../../@webcomponents/webcomponentsjs/webcomponents-bundle.js"></script> <script src="../../../../wct-browser-legacy/browser.js"></script> <script type="module" src="../kano-session.js"></script> </head> <body> <test-fixture id="default"> <template> <kano-session></kano-session> </template> </test-fixture> <script type="module"> import '../kano-session.js'; suite('<kano-session> already authenticated', function() { var session, sessionFixture, requestMade; setup(function() { requestMade = false; sessionFixture = generateSession(); // Fake fetch returning the stub session window.fetch = function (url, opts) { requestMade = true; return Promise.resolve({ json: function () { return Promise.resolve({ session: { user: { username: 'authenticated-user' } } }); } }); }; session = fixture('default'); }); test('Request is made and user is populated', function(done) { session.addEventListener('status-changed', function (v) { if (v.detail.value === 'authenticated' && !requestMade) { assert.equal(session.user.username, 'already-authenticated'); done(); } }); }); teardown(function () { sessionFixture.revert(); }); }); function generateSession () { var token = Date.now(), session = { user: { username: 'already-authenticated' } }, currentSession = localStorage.getItem('KW_SESSION'), currentToken = localStorage.getItem('KW_TOKENv2'); localStorage.setItem('KW_SESSION', JSON.stringify(session)); localStorage.setItem('KW_TOKENv2', JSON.stringify(token.toString())); return { token: token, session: session, revert: function () { if (currentSession) { localStorage.setItem('KW_SESSION', currentSession); } if (currentToken) { localStorage.setItem('KW_TOKENv2', currentToken); } } }; } </script> </body> </html>