nodejs-schema-rules
Version:
The CLI tool automatically generates basic validation rules for popular libraries such as JOI, ValidatorJS and @vinejs/vine based on your database table schema!
108 lines (89 loc) • 3.91 kB
text/typescript
import { Executor } from '../src/executor';
import { DATABASE_SQLITE, REQUEST_VALIDATION_TYPE_JOI, REQUEST_VALIDATION_TYPE_VALIDATORJS, REQUEST_VALIDATION_TYPE_VINE } from '../src/utils/constants';
import { tableName } from '../src/examples/sql';
const options = {
columns: [],
validationSchemaType:REQUEST_VALIDATION_TYPE_VALIDATORJS,
requestFile:"examples/form-validation"
}
test.only('ValidatorJs schema generate only schema rules from sqtile', async () => {
const otherOpt={
...options,
requestFile:null
}
const executor=new Executor(tableName,DATABASE_SQLITE,otherOpt);
expect(await executor.execute()).toBeTruthy()
});
test.only('ValidatorJs schema generate with selected columns from sqtile', async () => {
const otherOpt={
...options,
columns:["name","age","height"],
requestFile:`${options.requestFile}/${DATABASE_SQLITE}/${REQUEST_VALIDATION_TYPE_VALIDATORJS}/ValidatorJSTestWithSelectedColumn`
}
const executor=new Executor(tableName,DATABASE_SQLITE,otherOpt);
expect(await executor.execute()).toBeTruthy()
});
test.only('ValidatorJs schema generate without selected columns from sqtile', async () => {
const otherOpt={
...options,
requestFile:`${options.requestFile}/${DATABASE_SQLITE}/${REQUEST_VALIDATION_TYPE_VALIDATORJS}/ValidatorJSTestWithoutSelectedColumn`
}
const executor=new Executor(tableName,DATABASE_SQLITE,otherOpt);
expect(await executor.execute()).toBeTruthy()
});
test.only('JOI schema generate only schema rules from sqtile', async () => {
const otherOpt={
...options,
validationSchemaType:REQUEST_VALIDATION_TYPE_JOI,
requestFile:null
}
const executor=new Executor(tableName,DATABASE_SQLITE,otherOpt);
expect(await executor.execute()).toBeTruthy()
});
test.only('JOI schema generate with selected columns from sqtile', async () => {
const otherOpt={
...options,
columns:["name","age","height"],
validationSchemaType:REQUEST_VALIDATION_TYPE_JOI,
requestFile:`${options.requestFile}/${DATABASE_SQLITE}/${REQUEST_VALIDATION_TYPE_VALIDATORJS}/JOITestWithSelectedColumn`
}
const executor=new Executor(tableName,DATABASE_SQLITE,otherOpt);
expect(await executor.execute()).toBeTruthy()
});
test.only('JOI schema generate without selected columns from sqtile', async () => {
const otherOpt={
...options,
validationSchemaType:REQUEST_VALIDATION_TYPE_JOI,
requestFile:`${options.requestFile}/${DATABASE_SQLITE}/${REQUEST_VALIDATION_TYPE_VALIDATORJS}/JOITestWithoutSelectedColumn`
}
const executor=new Executor(tableName,DATABASE_SQLITE,otherOpt);
expect(await executor.execute()).toBeTruthy()
});
test.only('Vine Js schema generate only schema rules from sqtile', async () => {
const otherOpt={
...options,
validationSchemaType:REQUEST_VALIDATION_TYPE_VINE,
requestFile:null
}
const executor=new Executor(tableName,DATABASE_SQLITE,otherOpt);
expect(await executor.execute()).toBeTruthy()
});
test.only('Vine Js schema generate with selected columns from sqtile', async () => {
const otherOpt={
...options,
columns:['int_column','float_column','date_column','varchar_column'],
validationSchemaType:REQUEST_VALIDATION_TYPE_VINE,
requestFile:`${options.requestFile}/${DATABASE_SQLITE}/${REQUEST_VALIDATION_TYPE_VALIDATORJS}/VineJsTestWithSelectedColumn`
}
const executor=new Executor(tableName,DATABASE_SQLITE,otherOpt);
expect(await executor.execute()).toBeTruthy()
});
test.only('Vine Js schema generate without selected columns from sqtile', async () => {
const otherOpt={
...options,
validationSchemaType:REQUEST_VALIDATION_TYPE_VINE,
requestFile:`${options.requestFile}/${DATABASE_SQLITE}/${REQUEST_VALIDATION_TYPE_VALIDATORJS}/VineJsTestWithoutSelectedColumn`
}
const executor=new Executor(tableName,DATABASE_SQLITE,otherOpt);
expect(await executor.execute()).toBeTruthy()
});