Pokemon_server / test /lib /postgres.js
Jofthomas's picture
Upload 4781 files
5c2ed06 verified
"use strict";
const assert = require('assert').strict;
const { PostgresDatabase } = require('../../dist/lib');
function testMod(mod) {
try {
require(mod);
} catch {
return it.skip;
}
return it;
}
// only run these if you already have postgres configured
describe.skip("Postgres features", () => {
it("Should be able to connect to a database", async () => {
this.database = new PostgresDatabase();
});
it("Should be able to insert data", async () => {
await assert.doesNotThrowAsync(async () => {
await this.database.query(`CREATE TABLE test (col TEXT, col2 TEXT)`);
await this.database.query(
`INSERT INTO test (col, col2) VALUES ($1, $2)`,
['foo', 'bar']
);
});
});
testMod('sql-template-strings')('Should support sql-template-strings', async () => {
await assert.doesNotThrowAsync(async () => {
const SQL = require('sql-template-strings');
await this.database.query(SQL`INSERT INTO test (col1, col2) VALUES (${'a'}, ${'b'})`);
});
});
it("Should be able to run multiple statements in transaction", async () => {
await assert.doesNotThrowAsync(async () => {
await this.database.transaction(async worker => {
const tables = await worker.query(
`SELECT tablename FROM pg_catalog.pg_tables ` +
`WHERE tablename = 'test' LIMIT 1;`
);
for (const { tablename } of tables) {
await worker.query(`DROP TABLE ` + tablename);
}
});
});
});
});