@webda/core
Version:
Expose API with Lambda
89 lines • 3.33 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 { MapperService } from "../index.js";
import { AliasStore } from "./aliasstore.js";
import { StoreTest } from "./store.spec.js";
let AliasStoreTest = class AliasStoreTest extends StoreTest {
async buildWebda() {
await super.buildWebda();
let services = [
new AliasStore(this.webda, "aliasUser", {
targetStore: "MemoryIdents",
model: "Webda/User",
idTemplate: "{id}",
expose: {
url: "/alias/users"
}
}),
new AliasStore(this.webda, "aliasIdent", {
targetStore: "MemoryIdents",
model: "WebdaTest/Ident",
idTemplate: "{id}",
expose: {
url: "/alias/idents"
},
asyncDelete: true
}),
new MapperService(this.webda, "aliasMapper", {
source: "aliasIdent",
targetAttribute: "idents",
target: "aliasUser",
attribute: "_user",
fields: ["type", "_lastUpdate"],
cascade: true
})
];
services.forEach(s => this.registerService(s));
}
getIdentStore() {
// Need to slow down the _get
let store = this.getService("MemoryIdents");
store.getParameters().forceModel = false;
store.getParameters().strict = false;
// @ts-ignore
let original = store._get.bind(store);
// @ts-ignore
store._get = async (...args) => {
await this.sleep(1);
return original(...args);
};
return this.getService("aliasIdent");
}
getUserStore() {
const store = this.getService("aliasUser");
// Monkey patch to allow switch from User to PermissionModel during test
store.setModel = (...args) => {
store._model = args[0];
store._targetStore.setModel(...args);
store._targetStore.getParameters().forceModel = true;
store.getParameters().strict = false;
store._targetStore.getParameters().strict = false;
};
return store;
}
async getIndex() {
return undefined;
}
async httpCRUD() {
return super.httpCRUD("/alias/users");
}
async modelActions() {
return super.modelActions("/alias/idents");
}
};
__decorate([
test
], AliasStoreTest.prototype, "httpCRUD", null);
__decorate([
test
], AliasStoreTest.prototype, "modelActions", null);
AliasStoreTest = __decorate([
suite
], AliasStoreTest);
export { AliasStoreTest };
//# sourceMappingURL=aliasstore.spec.js.map