UNPKG

@webda/core

Version:

Expose API with Lambda

89 lines 3.33 kB
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