test with mysql8
Signed-off-by: Daniel Dias Branco Arthaud <arthaud@gmail.com>
This commit is contained in:
@@ -14,9 +14,16 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import knexFactory, { Knex } from 'knex';
|
||||
import { Duration } from 'luxon';
|
||||
import { AbortController } from 'node-abort-controller';
|
||||
import { delegateAbortController, sleep, validateId } from './util';
|
||||
import { delegateAbortController, nowPlus, sleep, validateId } from './util';
|
||||
|
||||
class KnexBuilder {
|
||||
public build(client: string): Knex {
|
||||
return knexFactory({ client });
|
||||
}
|
||||
}
|
||||
|
||||
describe('util', () => {
|
||||
describe('validateId', () => {
|
||||
@@ -73,4 +80,35 @@ describe('util', () => {
|
||||
expect(child.signal.aborted).toBe(true);
|
||||
});
|
||||
});
|
||||
|
||||
describe('nowPlus', () => {
|
||||
describe('without duration', () => {
|
||||
const databases = [
|
||||
{ client: 'sqlite3', expected: 'CURRENT_TIMESTAMP' },
|
||||
{ client: 'mysql2', expected: 'CURRENT_TIMESTAMP' },
|
||||
{ client: 'pg', expected: 'CURRENT_TIMESTAMP' },
|
||||
];
|
||||
|
||||
it.each(databases)('for client $client', ({ client, expected }) => {
|
||||
const knex = new KnexBuilder().build(client);
|
||||
const result = nowPlus(undefined, knex);
|
||||
|
||||
expect(result.toString()).toBe(expected);
|
||||
});
|
||||
});
|
||||
describe('With duration', () => {
|
||||
const databases = [
|
||||
{ client: 'sqlite3', expected: "datetime('now', '20 seconds')" },
|
||||
{ client: 'mysql2', expected: 'now() + interval 20 second' },
|
||||
{ client: 'pg', expected: "now() + interval '20 seconds'" },
|
||||
];
|
||||
it.each(databases)('for client $client', ({ client, expected }) => {
|
||||
const duration = Duration.fromObject({ seconds: 20 });
|
||||
const knex = new KnexBuilder().build(client);
|
||||
const result = nowPlus(duration, knex);
|
||||
|
||||
expect(result.toString()).toBe(expected);
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user