Skip to content

Commit

Permalink
SMC-4044: updated happn-3 for cookie event fix, adjusted browser tests
Browse files Browse the repository at this point in the history
  • Loading branch information
southbite committed Sep 10, 2021
1 parent b2b5339 commit be18868
Show file tree
Hide file tree
Showing 12 changed files with 573 additions and 321 deletions.
4 changes: 4 additions & 0 deletions RELEASES.md
Original file line number Diff line number Diff line change
Expand Up @@ -793,3 +793,7 @@ SMC-1645: made error messages more consistent, encapsulating mesh.component.meth
------------------
- SMC-3242: fixed onBehalfOf and nested permissions issue

11.11.3 2021-09-09
------------------
- fix: SMC-4044 - cookie events not dependent on client login

58 changes: 58 additions & 0 deletions docs/client.md
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,64 @@ __something.html__
</html>
```
#### Cookie Events
*when the mesh client connects in the browser, it pushes a cookie containing the auth token retrieved during login, this makes the token available for other tabs utilizing clients*
```javascript
let cookieEvents = [];
Happner.MeshClient.clearCookieEventObjects(); // clears all listeners
const cookieEventHandler1 = (event, cookie) => {
cookieEvents.push({
event: `${event}1`,
cookie
});
};
const cookieEventHandler2 = (event, cookie) => {
cookieEvents.push({
event: `${event}2`,
cookie
});
};
//handlers are added to the MeshClient before login
let [client, clientCookie] = [
new Happner.MeshClient({ port: 55000, cookieEventHandler: cookieEventHandler1 }),
new Happner.MeshClient({ port: 55000, cookieEventHandler: cookieEventHandler2 })
];
const loginOpts = {
username: 'username',
password: 'password'
};
await client.login(loginOpts);
await delay(3000);
await clientCookie.login({
useCookie: true
});
await delay(3000);
await client.disconnect({ deleteCookie: true });
await delay(3000);
await client.login(loginOpts);
await delay(3000);
const eventKeys = cookieEvents.map(evt => {
return evt.event;
});
expect(eventKeys).to.eql([
// no cookie - handler 1 detects
'cookie-deleted1',
// handler 1 detects creation of own cookie, client2 connects with useCookie
'cookie-created1',
// handler 1 deletes cookie
'cookie-deleted1',
// handler 2 detects cookie deletion
'cookie-deleted2',
// handler 1 reconnects
'cookie-created1',
// handler 2 detects cookie creation
'cookie-created2'
]);
await clientCookie.disconnect({ deleteCookie: true });
await client.disconnect();
```
#### Other Events
__something.html__
Expand Down
Loading

0 comments on commit be18868

Please sign in to comment.