@webda/core
Version:
Expose API with Lambda
71 lines • 3.16 kB
JavaScript
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
import { suite, test } from "@testdeck/mocha";
import * as assert from "assert";
import { MemoryStore } from "../stores/memory.js";
import { WebdaTest } from "../test.js";
import { OperationContext } from "./context.js";
import { UnknownSession } from "./session.js";
let SessionTest = class SessionTest {
basic() {
let session = new UnknownSession().getProxy();
session.plop = "test";
assert.ok(session.isDirty());
assert.ok(!session.isLogged());
session.login("user1", "ident1");
assert.ok(session.isLogged());
session.logout();
assert.ok(!session.isLogged());
}
};
__decorate([
test
], SessionTest.prototype, "basic", null);
SessionTest = __decorate([
suite
], SessionTest);
let SessionStoreTest = class SessionStoreTest extends WebdaTest {
async sessionStore() {
// Test MemoryStore
const store = (this.webda.getServices()["SessionStore"] = await new MemoryStore(this.webda, "SessionStore", {})
.resolve()
.init());
store.getParameters().expose = { url: "url" };
assert.throws(() => this.getService("SessionManager").resolve(), /SessionStore should not be exposed/);
store.getParameters().expose = undefined;
this.getService("SessionManager").resolve();
let ctx = await this.newContext();
ctx.getSession().identUsed = "bouzouf";
await ctx.end();
let sessions = await store.getAll();
assert.strictEqual(sessions.length, 1);
let cookie = await this.webda.getCrypto().jwtVerify(ctx.getResponseCookies()["test"].value);
assert.strictEqual(cookie.uuid, undefined);
assert.strictEqual(cookie.identUsed, undefined);
assert.strictEqual(cookie.sub, sessions[0].getUuid());
let ctx2 = await this.newContext();
ctx2.getHttpContext().cookies = {
test: ctx.getResponseCookies()["test"].value
};
await ctx2.init(true);
let session = ctx2.getSession();
assert.strictEqual(session.uuid, sessions[0].getUuid());
assert.strictEqual(session.identUsed, "bouzouf");
assert.strictEqual(session.sub, undefined);
let opCtx = new OperationContext(this.webda);
// cov
await this.getService("SessionManager").load(opCtx);
await this.getService("SessionManager").save(opCtx, undefined);
}
};
__decorate([
test
], SessionStoreTest.prototype, "sessionStore", null);
SessionStoreTest = __decorate([
suite
], SessionStoreTest);
//# sourceMappingURL=session.spec.js.map