1.0.0 • Published 5 years ago

sql-mocha v1.0.0

Weekly downloads
1
License
mit
Repository
github
Last release
5 years ago

Package para manipular banco de dados SQL

  • Possibilita mochar retornos do banco de dados para teste em todos ambientes.
  • Use MSSQL

Install

npm i sql-mocha

Documentação

Configuração

const { Sql } = require('sql-mocha');

const sql = new Sql({
    server: '',
    database: '',
    user: '',
    password: '',
    //DEFAULTS
    connectTimeout: 60000,
    requestTimeout: 60000,
    pool: {
        max: 5,
        min: 1,
        idleTimeoutMillis: 3000
    }
});

Execute

const return = await sql.execute('procedureName', {
    input: any
});

const return = await sql.execute('procedureName', {
    input: sql.types.decimal(14,2, 1444.23),
    $output: sql.types.int()
});

const return = await sql.execute('procedureName', {
    input: any,
    $output: sql.types.int()
});

/*
return =
    {
        content: [],
        returnValue: Number|String,
        outputs: { output: any }
    }
*/

Execute/Model

const return = await sql.execute('procedureName', {
    input: any,
    $output: sql.types.type()
}, { dataset1: [], dataset2: {}, dataset3: [] });

/*
return =
    {
        content: {
            dataset1: [], 
            dataset2: {}, 
            dataset3: []
        },
        returnValue: Number|String,
        outputs: { output: any }
    }
*/

ExecuteOne

const return = await sql.executeOne('procedureName', {
    input: any
});

/*
return =
    {
        content: {},
        returnValue: Number|String
    }
*/

Query

const return = await sql.query('Select * From TABELA Where id = $id', {
    id: 'String|Number|Date|Boolean'
});

Transactions

await sql.openTransaction();

const result = await sql.execute('procedureName', {
    input: any,
    $output: sql.types.type()
});

if(!result.returnValue)
    await sql.rollback();

await sql.commit();

Mocha

  • Mocar retornos procedures
  • Criar arquivo 'mocha.json' no mesmo diretório onde sera executado a procedure
  • Setar process.env.DATABASE_MOCHA = true;

Estrutura de pastas

Api
└─ src
    └─ diretorio
        |─ controller.js
        |─ repository.js //sql.execute('procedureName')
        └─ mocha.json
mocha.js
  • Estrutura do json
    • Key = Nome da procedure
{
	"procedureName": {
        "parameters": {
            "param1": 'value'
        }
		"content": [],
		"outputs": {},
		"returnValue": null
	}
}
  • Erros
    • Code 1: Arquivo mocha não encontrado
    • Code 2: Parâmetros inválidos

Context

  • Instância de sql por requisição
const express = require('express');
const app = express();
const { Context } = require('sql-mocha');

Context.middleware(app, { /* Sql Config */ });

app.get('/', async (req, res, next)=> {
    await Context.sql.execute('procedureName');
});

SQLTypes(mssql)

  • numeric(precision, scale, value?)
  • decimal(precision, scale, value?)
  • varChar(length, value?)
  • nVarChar(length, value?)
  • char(length, value?)
  • nChar(length, value?)
  • varBinary(length, value?)
  • time(scale, value?)
  • dateTime2(scale, value?)
  • dateTimeOffset(scale, value?)
  • text(value?)
  • int(value?)
  • bigInt(value?)
  • tinyInt(value?)
  • smallInt(value?)
  • bit(value?)
  • float(value?)
  • real(value?)
  • date(value?)
  • dateTime(value?)
  • smallDateTime(value?)
  • uniqueIdentifier(value?)
  • smallMoney(value?)
  • money(value?)
  • binary(value?)
  • nText(value?)
1.0.0

5 years ago

0.0.20

5 years ago

0.0.19

5 years ago

0.0.18

5 years ago

0.0.17

5 years ago

0.0.16

5 years ago

0.0.15

5 years ago

0.0.14

5 years ago

0.0.13

5 years ago

0.0.12

5 years ago

0.0.11

5 years ago

0.0.10

5 years ago

0.0.9

5 years ago

0.0.8

5 years ago

0.0.7

5 years ago

0.0.6

5 years ago

0.0.5

5 years ago

0.0.3

5 years ago

0.0.2

5 years ago

0.0.1

5 years ago