From 1bc217368b1db6f1c83ad6f6cf256cd7b33a613c Mon Sep 17 00:00:00 2001 From: Remi Cattiau Date: Sat, 18 Nov 2023 12:32:20 -0800 Subject: [PATCH] ci: fix unit tests --- .../core/src/services/domainservice.spec.ts | 4 +++- packages/core/src/stores/memory.spec.ts | 6 ++++- packages/postgres/src/postgresstore.spec.ts | 24 +++++++++++++++++++ packages/postgres/src/postgresstore.ts | 4 ++-- packages/postgres/test/config.json | 3 ++- 5 files changed, 36 insertions(+), 5 deletions(-) diff --git a/packages/core/src/services/domainservice.spec.ts b/packages/core/src/services/domainservice.spec.ts index 0c29ffdd3..048de9594 100644 --- a/packages/core/src/services/domainservice.spec.ts +++ b/packages/core/src/services/domainservice.spec.ts @@ -377,14 +377,16 @@ class DomainServiceTest extends WebdaTest { url: "/openapi" }); assert.ok(result.includes('spec = {"openapi"')); + this.webda.getRouter().removeRoute("/openapi"); rest.getParameters().exposeOpenAPI = false; + await rest.resolve().init(); await assert.rejects( () => this.http({ method: "GET", url: "/openapi" }), - /OpenAPI not available/ + /route not found/ ); } } diff --git a/packages/core/src/stores/memory.spec.ts b/packages/core/src/stores/memory.spec.ts index 1852fffb4..f6b6b76b7 100644 --- a/packages/core/src/stores/memory.spec.ts +++ b/packages/core/src/stores/memory.spec.ts @@ -1,13 +1,13 @@ import { suite, test } from "@testdeck/mocha"; import * as assert from "assert"; import { existsSync, unlinkSync } from "fs"; +import sinon from "sinon"; import { AggregatorService, CoreModel, Ident, MemoryStore, Store, User, WebdaError } from "../index"; import { HttpContext } from "../utils/httpcontext"; import { JSONUtils } from "../utils/serializers"; import { StoreNotFoundError } from "./store"; import { PermissionModel, StoreTest } from "./store.spec"; import { WebdaQL } from "./webdaql/query"; -import sinon from "sinon"; @suite class MemoryStoreTest extends StoreTest { @@ -252,6 +252,10 @@ class MemoryStoreTest extends StoreTest { }); await usersStore.getMigration(`storeMigration.${usersStore.getName()}.typesShortId`); await usersStore.cancelMigration(`storeMigration.${usersStore.getName()}.typesShortId`); + + await usersStore.migration("test", async () => { + return async () => {}; + }); } @test diff --git a/packages/postgres/src/postgresstore.spec.ts b/packages/postgres/src/postgresstore.spec.ts index 171244d81..b89b26777 100644 --- a/packages/postgres/src/postgresstore.spec.ts +++ b/packages/postgres/src/postgresstore.spec.ts @@ -2,6 +2,7 @@ import { suite, test } from "@testdeck/mocha"; import { Ident, Store } from "@webda/core"; import { StoreTest } from "@webda/core/lib/stores/store.spec"; import * as assert from "assert"; +import pg from "pg"; import PostgresStore from "./postgresstore"; @suite @@ -22,6 +23,29 @@ export class PostgresTest extends StoreTest { return super.deleteConcurrent(); } + @test + async createTable() { + const client = new pg.Client({ + host: "localhost", + user: "webda.io", + database: "webda.io", + password: "webda.io" + }); + try { + await client.connect(); + await client.query("DROP TABLE IF EXISTS create_test"); + let store: PostgresStore = this.getService("idents"); + store.getParameters().table = "create_test"; + store.getParameters().autoCreateTable = true; + await store.init(); + await store.save({ test: 1 }); + const res = await store.getClient().query("SELECT * FROM create_test"); + assert.strictEqual(res.rowCount, 1); + } finally { + await client.end(); + } + } + @test async cov() { let store: PostgresStore = this.getService("idents"); diff --git a/packages/postgres/src/postgresstore.ts b/packages/postgres/src/postgresstore.ts index 6620850be..106f985ce 100644 --- a/packages/postgres/src/postgresstore.ts +++ b/packages/postgres/src/postgresstore.ts @@ -68,7 +68,7 @@ export default class PostgresStore< if (!this.parameters.autoCreateTable) { return; } - await this.sqlQuery( + await this.client.query( `CREATE TABLE IF NOT EXISTS ${this.parameters.table} (uuid VARCHAR(255) NOT NULL, data jsonb, CONSTRAINT ${this.parameters.table}_pkey PRIMARY KEY (uuid))` ); } @@ -87,7 +87,7 @@ export default class PostgresStore< * @param query * @returns */ - async executeQuery(query: string, values: any[]): Promise> { + async executeQuery(query: string, values: any[] = []): Promise> { this.log("DEBUG", "Query", query); let res = await this.client.query(query, values); return { diff --git a/packages/postgres/test/config.json b/packages/postgres/test/config.json index e9a27bb4b..099ec7b3a 100644 --- a/packages/postgres/test/config.json +++ b/packages/postgres/test/config.json @@ -7,7 +7,8 @@ "user": "webda.io", "database": "webda.io", "password": "webda.io", - "statement_timeout": 60000 + "statement_timeout": 60000, + "max": 2 }, "usePool": true, "sessionSecret": "Lp4B72FPU5n6q4EpVRGyPFnZp5cgLRPScVWixW52Yq84hD4MmnfVfgxKQ5ENLp4B72FPU5n6q4EpVRGyPFnZp5cgLRPScVWixW52Yq84hD4MmnfVfgxKQ5ENLp4B72FPU5n6q4EpVRGyPFnZp5cgLRPScVWixW52Yq84hD4MmnfVfgxKQ5ENLp4B72FPU5n6q4EpVRGyPFnZp5cgLRPScVWixW52Yq84hD4MmnfVfgxKQ5ENLp4B72FPU5n6q4EpVRGyPFnZp5cgLRPScVWixW52Yq84hD4MmnfVfgxKQ5ENLp4B72FPU5n6q4EpVRGyPFnZp5cgLRPScVWixW52Yq84hD4MmnfVfgxKQ5ENLp4B72FPU5n6q4EpVRGyPFnZp5cgLRPScVWixW52Yq84hD4MmnfVfgxKQ5ENLp4B72FPU5n6q4EpVRGyPFnZp5cgLRPScVWixW52Yq84hD4MmnfVfgxKQ5ENLp4B72FPU5n6q4EpVRGyPFnZp5cgLRPScVWixW52Yq84hD4MmnfVfgxKQ5ENLp4B72FPU5n6q4EpVRGyPFnZp5cgLRPScVWixW52Yq84hD4MmnfVfgxKQ5ENLp4B72FPU5n6q4EpVRGyPFnZp5cgLRPScVWixW52Yq84hD4MmnfVfgxKQ5ENLp4B72FPU5n6q4EpVRGyPFnZp5cgLRPScVWixW52Yq84hD4MmnfVfgxKQ5ENLp4B72FPU5n6q4EpVRGyPFnZp5cgLRPScVWixW52Yq84hD4MmnfVfgxKQ5EN"