@kano/web-components
Version:
Shared web-components for the Kano ecosystem.
90 lines (80 loc) • 2.65 kB
HTML
<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>