80 lines
2.2 KiB
TypeScript
80 lines
2.2 KiB
TypeScript
import { test as brotest } from '@drizzle-team/brocli';
|
|
import { assert, expect, test } from 'vitest';
|
|
import { exportRaw } from '../src/cli/schema';
|
|
|
|
// good:
|
|
// #1 drizzle-kit export --dialect=postgresql --schema=schema.ts
|
|
// #3 drizzle-kit export
|
|
// #3 drizzle-kit export --config=drizzle1.config.ts
|
|
|
|
// errors:
|
|
// #1 drizzle-kit export --schema=src/schema.ts
|
|
// #2 drizzle-kit export --dialect=postgresql
|
|
// #3 drizzle-kit export --dialect=postgresql2
|
|
// #4 drizzle-kit export --config=drizzle.config.ts --schema=schema.ts
|
|
// #5 drizzle-kit export --config=drizzle.config.ts --dialect=postgresql
|
|
|
|
test('export #1', async (t) => {
|
|
const res = await brotest(
|
|
exportRaw,
|
|
'--dialect=postgresql --schema=schema.ts',
|
|
);
|
|
|
|
if (res.type !== 'handler') assert.fail(res.type, 'handler');
|
|
|
|
expect(res.options).toStrictEqual({
|
|
dialect: 'postgresql',
|
|
schema: 'schema.ts',
|
|
sql: true,
|
|
});
|
|
});
|
|
|
|
test('export #2', async (t) => {
|
|
const res = await brotest(exportRaw, '');
|
|
|
|
if (res.type !== 'handler') assert.fail(res.type, 'handler');
|
|
expect(res.options).toStrictEqual({
|
|
dialect: 'postgresql',
|
|
schema: './schema.ts',
|
|
sql: true,
|
|
});
|
|
});
|
|
|
|
// custom config path
|
|
test('export #3', async (t) => {
|
|
const res = await brotest(exportRaw, '--config=expo.config.ts');
|
|
assert.equal(res.type, 'handler');
|
|
if (res.type !== 'handler') assert.fail(res.type, 'handler');
|
|
expect(res.options).toStrictEqual({
|
|
dialect: 'sqlite',
|
|
schema: './schema.ts',
|
|
sql: true,
|
|
});
|
|
});
|
|
|
|
// --- errors ---
|
|
test('err #1', async (t) => {
|
|
const res = await brotest(exportRaw, '--schema=src/schema.ts');
|
|
assert.equal(res.type, 'error');
|
|
});
|
|
|
|
test('err #2', async (t) => {
|
|
const res = await brotest(exportRaw, '--dialect=postgresql');
|
|
assert.equal(res.type, 'error');
|
|
});
|
|
|
|
test('err #3', async (t) => {
|
|
const res = await brotest(exportRaw, '--dialect=postgresql2');
|
|
assert.equal(res.type, 'error');
|
|
});
|
|
|
|
test('err #4', async (t) => {
|
|
const res = await brotest(exportRaw, '--config=drizzle.config.ts --schema=schema.ts');
|
|
assert.equal(res.type, 'error');
|
|
});
|
|
|
|
test('err #5', async (t) => {
|
|
const res = await brotest(exportRaw, '--config=drizzle.config.ts --dialect=postgresql');
|
|
assert.equal(res.type, 'error');
|
|
});
|