Updating tests to use latest version of jest, which broke a lot of things, but was necessary to get proper ts-jest support.
This commit is contained in:
parent
6cae9cbdb8
commit
19da122425
|
@ -1,4 +1,4 @@
|
||||||
const elastic = {}
|
const elastic: any = {}
|
||||||
|
|
||||||
elastic.Client = function () {
|
elastic.Client = function () {
|
||||||
this.index = jest.fn().mockResolvedValue({ body: [] })
|
this.index = jest.fn().mockResolvedValue({ body: [] })
|
|
@ -1,18 +0,0 @@
|
||||||
class Email {
|
|
||||||
constructor() {
|
|
||||||
this.apiKey = null
|
|
||||||
}
|
|
||||||
|
|
||||||
setApiKey(apiKey) {
|
|
||||||
this.apiKey = apiKey
|
|
||||||
}
|
|
||||||
|
|
||||||
async send(msg) {
|
|
||||||
if (msg.to === "invalid@test.com") {
|
|
||||||
throw "Invalid"
|
|
||||||
}
|
|
||||||
return msg
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
module.exports = new Email()
|
|
|
@ -0,0 +1,22 @@
|
||||||
|
module SendgridMock {
|
||||||
|
class Email {
|
||||||
|
constructor() {
|
||||||
|
// @ts-ignore
|
||||||
|
this.apiKey = null
|
||||||
|
}
|
||||||
|
|
||||||
|
setApiKey(apiKey: any) {
|
||||||
|
// @ts-ignore
|
||||||
|
this.apiKey = apiKey
|
||||||
|
}
|
||||||
|
|
||||||
|
async send(msg: any) {
|
||||||
|
if (msg.to === "invalid@test.com") {
|
||||||
|
throw "Invalid"
|
||||||
|
}
|
||||||
|
return msg
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
module.exports = new Email()
|
||||||
|
}
|
|
@ -1,5 +0,0 @@
|
||||||
function Airtable() {
|
|
||||||
this.base = jest.fn()
|
|
||||||
}
|
|
||||||
|
|
||||||
module.exports = Airtable
|
|
|
@ -0,0 +1,8 @@
|
||||||
|
module AirtableMock {
|
||||||
|
function Airtable() {
|
||||||
|
// @ts-ignore
|
||||||
|
this.base = jest.fn()
|
||||||
|
}
|
||||||
|
|
||||||
|
module.exports = Airtable
|
||||||
|
}
|
|
@ -1,21 +0,0 @@
|
||||||
const arangodb = {}
|
|
||||||
|
|
||||||
arangodb.Database = function () {
|
|
||||||
this.query = jest.fn(() => ({
|
|
||||||
all: jest.fn(),
|
|
||||||
}))
|
|
||||||
this.collection = jest.fn(() => "collection")
|
|
||||||
this.close = jest.fn()
|
|
||||||
}
|
|
||||||
|
|
||||||
arangodb.aql = (strings, ...args) => {
|
|
||||||
let str = strings.join("{}")
|
|
||||||
|
|
||||||
for (let arg of args) {
|
|
||||||
str = str.replace("{}", arg)
|
|
||||||
}
|
|
||||||
|
|
||||||
return str
|
|
||||||
}
|
|
||||||
|
|
||||||
module.exports = arangodb
|
|
|
@ -0,0 +1,24 @@
|
||||||
|
module ArangoMock {
|
||||||
|
const arangodb: any = {}
|
||||||
|
|
||||||
|
arangodb.Database = function () {
|
||||||
|
this.query = jest.fn(() => ({
|
||||||
|
all: jest.fn(),
|
||||||
|
}))
|
||||||
|
this.collection = jest.fn(() => "collection")
|
||||||
|
this.close = jest.fn()
|
||||||
|
}
|
||||||
|
|
||||||
|
// @ts-ignore
|
||||||
|
arangodb.aql = (strings, ...args) => {
|
||||||
|
let str = strings.join("{}")
|
||||||
|
|
||||||
|
for (let arg of args) {
|
||||||
|
str = str.replace("{}", arg)
|
||||||
|
}
|
||||||
|
|
||||||
|
return str
|
||||||
|
}
|
||||||
|
|
||||||
|
module.exports = arangodb
|
||||||
|
}
|
|
@ -1,38 +0,0 @@
|
||||||
const aws = {}
|
|
||||||
|
|
||||||
const response = body => () => ({ promise: () => body })
|
|
||||||
|
|
||||||
function DocumentClient() {
|
|
||||||
this.put = jest.fn(response({}))
|
|
||||||
this.query = jest.fn(
|
|
||||||
response({
|
|
||||||
Items: [],
|
|
||||||
})
|
|
||||||
)
|
|
||||||
this.scan = jest.fn(
|
|
||||||
response({
|
|
||||||
Items: [
|
|
||||||
{
|
|
||||||
Name: "test",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
})
|
|
||||||
)
|
|
||||||
this.get = jest.fn(response({}))
|
|
||||||
this.update = jest.fn(response({}))
|
|
||||||
this.delete = jest.fn(response({}))
|
|
||||||
}
|
|
||||||
|
|
||||||
function S3() {
|
|
||||||
this.listObjects = jest.fn(
|
|
||||||
response({
|
|
||||||
Contents: {},
|
|
||||||
})
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
aws.DynamoDB = { DocumentClient }
|
|
||||||
aws.S3 = S3
|
|
||||||
aws.config = { update: jest.fn() }
|
|
||||||
|
|
||||||
module.exports = aws
|
|
|
@ -0,0 +1,47 @@
|
||||||
|
module AwsMock {
|
||||||
|
const aws: any = {}
|
||||||
|
|
||||||
|
const response = (body: any) => () => ({promise: () => body})
|
||||||
|
|
||||||
|
function DocumentClient() {
|
||||||
|
// @ts-ignore
|
||||||
|
this.put = jest.fn(response({}))
|
||||||
|
// @ts-ignore
|
||||||
|
this.query = jest.fn(
|
||||||
|
response({
|
||||||
|
Items: [],
|
||||||
|
})
|
||||||
|
)
|
||||||
|
// @ts-ignore
|
||||||
|
this.scan = jest.fn(
|
||||||
|
response({
|
||||||
|
Items: [
|
||||||
|
{
|
||||||
|
Name: "test",
|
||||||
|
},
|
||||||
|
],
|
||||||
|
})
|
||||||
|
)
|
||||||
|
// @ts-ignore
|
||||||
|
this.get = jest.fn(response({}))
|
||||||
|
// @ts-ignore
|
||||||
|
this.update = jest.fn(response({}))
|
||||||
|
// @ts-ignore
|
||||||
|
this.delete = jest.fn(response({}))
|
||||||
|
}
|
||||||
|
|
||||||
|
function S3() {
|
||||||
|
// @ts-ignore
|
||||||
|
this.listObjects = jest.fn(
|
||||||
|
response({
|
||||||
|
Contents: {},
|
||||||
|
})
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
aws.DynamoDB = {DocumentClient}
|
||||||
|
aws.S3 = S3
|
||||||
|
aws.config = {update: jest.fn()}
|
||||||
|
|
||||||
|
module.exports = aws
|
||||||
|
}
|
|
@ -1,19 +0,0 @@
|
||||||
const mongodb = {}
|
|
||||||
|
|
||||||
mongodb.MongoClient = function () {
|
|
||||||
this.connect = jest.fn()
|
|
||||||
this.close = jest.fn()
|
|
||||||
this.insertOne = jest.fn()
|
|
||||||
this.find = jest.fn(() => ({ toArray: () => [] }))
|
|
||||||
|
|
||||||
this.collection = jest.fn(() => ({
|
|
||||||
insertOne: this.insertOne,
|
|
||||||
find: this.find,
|
|
||||||
}))
|
|
||||||
|
|
||||||
this.db = () => ({
|
|
||||||
collection: this.collection,
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
module.exports = mongodb
|
|
|
@ -0,0 +1,21 @@
|
||||||
|
module MongoMock {
|
||||||
|
const mongodb: any = {}
|
||||||
|
|
||||||
|
mongodb.MongoClient = function () {
|
||||||
|
this.connect = jest.fn()
|
||||||
|
this.close = jest.fn()
|
||||||
|
this.insertOne = jest.fn()
|
||||||
|
this.find = jest.fn(() => ({toArray: () => []}))
|
||||||
|
|
||||||
|
this.collection = jest.fn(() => ({
|
||||||
|
insertOne: this.insertOne,
|
||||||
|
find: this.find,
|
||||||
|
}))
|
||||||
|
|
||||||
|
this.db = () => ({
|
||||||
|
collection: this.collection,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
module.exports = mongodb
|
||||||
|
}
|
|
@ -1,22 +0,0 @@
|
||||||
const mssql = {}
|
|
||||||
|
|
||||||
mssql.query = jest.fn(() => ({
|
|
||||||
recordset: [
|
|
||||||
{
|
|
||||||
a: "string",
|
|
||||||
b: 1,
|
|
||||||
},
|
|
||||||
],
|
|
||||||
}))
|
|
||||||
|
|
||||||
// mssql.connect = jest.fn(() => ({ recordset: [] }))
|
|
||||||
|
|
||||||
mssql.ConnectionPool = jest.fn(() => ({
|
|
||||||
connect: jest.fn(() => ({
|
|
||||||
request: jest.fn(() => ({
|
|
||||||
query: jest.fn(() => ({})),
|
|
||||||
})),
|
|
||||||
})),
|
|
||||||
}))
|
|
||||||
|
|
||||||
module.exports = mssql
|
|
|
@ -0,0 +1,24 @@
|
||||||
|
module MsSqlMock {
|
||||||
|
const mssql: any = {}
|
||||||
|
|
||||||
|
mssql.query = jest.fn(() => ({
|
||||||
|
recordset: [
|
||||||
|
{
|
||||||
|
a: "string",
|
||||||
|
b: 1,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
}))
|
||||||
|
|
||||||
|
// mssql.connect = jest.fn(() => ({ recordset: [] }))
|
||||||
|
|
||||||
|
mssql.ConnectionPool = jest.fn(() => ({
|
||||||
|
connect: jest.fn(() => ({
|
||||||
|
request: jest.fn(() => ({
|
||||||
|
query: jest.fn(() => ({})),
|
||||||
|
})),
|
||||||
|
})),
|
||||||
|
}))
|
||||||
|
|
||||||
|
module.exports = mssql
|
||||||
|
}
|
|
@ -1,12 +0,0 @@
|
||||||
const mysql = {}
|
|
||||||
|
|
||||||
const client = {
|
|
||||||
connect: jest.fn(),
|
|
||||||
query: jest.fn((query, bindings, fn) => {
|
|
||||||
fn(null, [])
|
|
||||||
}),
|
|
||||||
}
|
|
||||||
|
|
||||||
mysql.createConnection = jest.fn(() => client)
|
|
||||||
|
|
||||||
module.exports = mysql
|
|
|
@ -0,0 +1,14 @@
|
||||||
|
module MySQLMock {
|
||||||
|
const mysql: any = {}
|
||||||
|
|
||||||
|
const client = {
|
||||||
|
connect: jest.fn(),
|
||||||
|
query: jest.fn((query, bindings, fn) => {
|
||||||
|
fn(null, [])
|
||||||
|
}),
|
||||||
|
}
|
||||||
|
|
||||||
|
mysql.createConnection = jest.fn(() => client)
|
||||||
|
|
||||||
|
module.exports = mysql
|
||||||
|
}
|
|
@ -1,58 +0,0 @@
|
||||||
const fetch = jest.requireActual("node-fetch")
|
|
||||||
|
|
||||||
module.exports = async (url, opts) => {
|
|
||||||
function json(body, status = 200) {
|
|
||||||
return {
|
|
||||||
status,
|
|
||||||
headers: {
|
|
||||||
get: () => {
|
|
||||||
return ["application/json"]
|
|
||||||
},
|
|
||||||
},
|
|
||||||
json: async () => {
|
|
||||||
return body
|
|
||||||
},
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (url.includes("/api/admin")) {
|
|
||||||
return json({
|
|
||||||
email: "test@test.com",
|
|
||||||
_id: "us_test@test.com",
|
|
||||||
status: "active",
|
|
||||||
})
|
|
||||||
}
|
|
||||||
// mocked data based on url
|
|
||||||
else if (url.includes("api/apps")) {
|
|
||||||
return json({
|
|
||||||
app1: {
|
|
||||||
url: "/app1",
|
|
||||||
},
|
|
||||||
})
|
|
||||||
} else if (url.includes("test.com")) {
|
|
||||||
return json({
|
|
||||||
body: opts.body,
|
|
||||||
url,
|
|
||||||
method: opts.method,
|
|
||||||
})
|
|
||||||
} else if (url.includes("invalid.com")) {
|
|
||||||
return json(
|
|
||||||
{
|
|
||||||
invalid: true,
|
|
||||||
},
|
|
||||||
404
|
|
||||||
)
|
|
||||||
} else if (url.includes("_search")) {
|
|
||||||
return json({
|
|
||||||
rows: [
|
|
||||||
{
|
|
||||||
doc: {
|
|
||||||
_id: "test",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
],
|
|
||||||
bookmark: "test",
|
|
||||||
})
|
|
||||||
}
|
|
||||||
return fetch(url, opts)
|
|
||||||
}
|
|
|
@ -0,0 +1,60 @@
|
||||||
|
module FetchMock {
|
||||||
|
const fetch = jest.requireActual("node-fetch")
|
||||||
|
|
||||||
|
module.exports = async (url: any, opts: any) => {
|
||||||
|
function json(body: any, status = 200) {
|
||||||
|
return {
|
||||||
|
status,
|
||||||
|
headers: {
|
||||||
|
get: () => {
|
||||||
|
return ["application/json"]
|
||||||
|
},
|
||||||
|
},
|
||||||
|
json: async () => {
|
||||||
|
return body
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (url.includes("/api/admin")) {
|
||||||
|
return json({
|
||||||
|
email: "test@test.com",
|
||||||
|
_id: "us_test@test.com",
|
||||||
|
status: "active",
|
||||||
|
})
|
||||||
|
}
|
||||||
|
// mocked data based on url
|
||||||
|
else if (url.includes("api/apps")) {
|
||||||
|
return json({
|
||||||
|
app1: {
|
||||||
|
url: "/app1",
|
||||||
|
},
|
||||||
|
})
|
||||||
|
} else if (url.includes("test.com")) {
|
||||||
|
return json({
|
||||||
|
body: opts.body,
|
||||||
|
url,
|
||||||
|
method: opts.method,
|
||||||
|
})
|
||||||
|
} else if (url.includes("invalid.com")) {
|
||||||
|
return json(
|
||||||
|
{
|
||||||
|
invalid: true,
|
||||||
|
},
|
||||||
|
404
|
||||||
|
)
|
||||||
|
} else if (url.includes("_search")) {
|
||||||
|
return json({
|
||||||
|
rows: [
|
||||||
|
{
|
||||||
|
doc: {
|
||||||
|
_id: "test",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
],
|
||||||
|
bookmark: "test",
|
||||||
|
})
|
||||||
|
}
|
||||||
|
return fetch(url, opts)
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,29 +0,0 @@
|
||||||
const pg = {}
|
|
||||||
|
|
||||||
const query = jest.fn(() => ({
|
|
||||||
rows: [
|
|
||||||
{
|
|
||||||
a: "string",
|
|
||||||
b: 1,
|
|
||||||
},
|
|
||||||
],
|
|
||||||
}))
|
|
||||||
|
|
||||||
// constructor
|
|
||||||
function Client() {}
|
|
||||||
|
|
||||||
Client.prototype.query = query
|
|
||||||
Client.prototype.connect = jest.fn()
|
|
||||||
Client.prototype.release = jest.fn()
|
|
||||||
|
|
||||||
function Pool() {}
|
|
||||||
Pool.prototype.query = query
|
|
||||||
Pool.prototype.connect = jest.fn(() => {
|
|
||||||
return new Client()
|
|
||||||
})
|
|
||||||
|
|
||||||
pg.Client = Client
|
|
||||||
pg.Pool = Pool
|
|
||||||
pg.queryMock = query
|
|
||||||
|
|
||||||
module.exports = pg
|
|
|
@ -0,0 +1,35 @@
|
||||||
|
module PgMock {
|
||||||
|
const pg: any = {}
|
||||||
|
|
||||||
|
const query = jest.fn(() => ({
|
||||||
|
rows: [
|
||||||
|
{
|
||||||
|
a: "string",
|
||||||
|
b: 1,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
}))
|
||||||
|
|
||||||
|
// constructor
|
||||||
|
function Client() {
|
||||||
|
}
|
||||||
|
|
||||||
|
Client.prototype.query = query
|
||||||
|
Client.prototype.connect = jest.fn()
|
||||||
|
Client.prototype.release = jest.fn()
|
||||||
|
|
||||||
|
function Pool() {
|
||||||
|
}
|
||||||
|
|
||||||
|
Pool.prototype.query = query
|
||||||
|
Pool.prototype.connect = jest.fn(() => {
|
||||||
|
// @ts-ignore
|
||||||
|
return new Client()
|
||||||
|
})
|
||||||
|
|
||||||
|
pg.Client = Client
|
||||||
|
pg.Pool = Pool
|
||||||
|
pg.queryMock = query
|
||||||
|
|
||||||
|
module.exports = pg
|
||||||
|
}
|
|
@ -10,8 +10,7 @@
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"build": "tsc",
|
"build": "tsc",
|
||||||
"test": "jest --testPathIgnorePatterns=routes && yarn run test:integration",
|
"test": "jest --coverage --maxWorkers=2",
|
||||||
"test:integration": "jest --coverage --detectOpenHandles",
|
|
||||||
"test:watch": "jest --watch",
|
"test:watch": "jest --watch",
|
||||||
"build:docker": "docker build . -t app-service",
|
"build:docker": "docker build . -t app-service",
|
||||||
"run:docker": "node dist/src/index.js",
|
"run:docker": "node dist/src/index.js",
|
||||||
|
@ -25,6 +24,7 @@
|
||||||
"initialise": "node scripts/initialise.js"
|
"initialise": "node scripts/initialise.js"
|
||||||
},
|
},
|
||||||
"jest": {
|
"jest": {
|
||||||
|
"preset": "ts-jest",
|
||||||
"testEnvironment": "node",
|
"testEnvironment": "node",
|
||||||
"setupFiles": [
|
"setupFiles": [
|
||||||
"./scripts/jestSetup.js"
|
"./scripts/jestSetup.js"
|
||||||
|
@ -116,6 +116,7 @@
|
||||||
"@budibase/standard-components": "^0.9.63",
|
"@budibase/standard-components": "^0.9.63",
|
||||||
"@jest/test-sequencer": "^24.8.0",
|
"@jest/test-sequencer": "^24.8.0",
|
||||||
"@types/bull": "^3.15.1",
|
"@types/bull": "^3.15.1",
|
||||||
|
"@types/jest": "^26.0.23",
|
||||||
"@types/koa": "^2.13.3",
|
"@types/koa": "^2.13.3",
|
||||||
"@types/koa-router": "^7.4.2",
|
"@types/koa-router": "^7.4.2",
|
||||||
"@types/node": "^15.12.4",
|
"@types/node": "^15.12.4",
|
||||||
|
@ -124,11 +125,12 @@
|
||||||
"docker-compose": "^0.23.6",
|
"docker-compose": "^0.23.6",
|
||||||
"eslint": "^6.8.0",
|
"eslint": "^6.8.0",
|
||||||
"express": "^4.17.1",
|
"express": "^4.17.1",
|
||||||
"jest": "^24.8.0",
|
"jest": "^27.0.5",
|
||||||
"nodemon": "^2.0.4",
|
"nodemon": "^2.0.4",
|
||||||
"pouchdb-adapter-memory": "^7.2.1",
|
"pouchdb-adapter-memory": "^7.2.1",
|
||||||
"prettier": "^2.3.1",
|
"prettier": "^2.3.1",
|
||||||
"supertest": "^4.0.2",
|
"supertest": "^4.0.2",
|
||||||
|
"ts-jest": "^27.0.3",
|
||||||
"ts-node": "^10.0.0",
|
"ts-node": "^10.0.0",
|
||||||
"typescript": "^4.3.4"
|
"typescript": "^4.3.4"
|
||||||
},
|
},
|
||||||
|
|
|
@ -1,7 +1,3 @@
|
||||||
const { clearAllApps, checkBuilderEndpoint } = require("./utilities/TestFunctions")
|
|
||||||
const setup = require("./utilities")
|
|
||||||
const { AppStatus } = require("../../../db/utils")
|
|
||||||
|
|
||||||
jest.mock("../../../utilities/redis", () => ({
|
jest.mock("../../../utilities/redis", () => ({
|
||||||
init: jest.fn(),
|
init: jest.fn(),
|
||||||
getAllLocks: () => {
|
getAllLocks: () => {
|
||||||
|
@ -15,6 +11,10 @@ jest.mock("../../../utilities/redis", () => ({
|
||||||
checkDebounce: jest.fn(),
|
checkDebounce: jest.fn(),
|
||||||
}))
|
}))
|
||||||
|
|
||||||
|
const { clearAllApps, checkBuilderEndpoint } = require("./utilities/TestFunctions")
|
||||||
|
const setup = require("./utilities")
|
||||||
|
const { AppStatus } = require("../../../db/utils")
|
||||||
|
|
||||||
describe("/applications", () => {
|
describe("/applications", () => {
|
||||||
let request = setup.getRequest()
|
let request = setup.getRequest()
|
||||||
let config = setup.getConfig()
|
let config = setup.getConfig()
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
|
jest.mock("../../../utilities/fileSystem/utilities")
|
||||||
|
|
||||||
const { checkBuilderEndpoint } = require("./utilities/TestFunctions")
|
const { checkBuilderEndpoint } = require("./utilities/TestFunctions")
|
||||||
const setup = require("./utilities")
|
const setup = require("./utilities")
|
||||||
|
|
||||||
jest.mock("../../../utilities/fileSystem/utilities")
|
|
||||||
|
|
||||||
describe("/backups", () => {
|
describe("/backups", () => {
|
||||||
let request = setup.getRequest()
|
let request = setup.getRequest()
|
||||||
let config = setup.getConfig()
|
let config = setup.getConfig()
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
|
jest.mock("pg")
|
||||||
|
|
||||||
let setup = require("./utilities")
|
let setup = require("./utilities")
|
||||||
let { basicDatasource } = setup.structures
|
let { basicDatasource } = setup.structures
|
||||||
let { checkBuilderEndpoint } = require("./utilities/TestFunctions")
|
let { checkBuilderEndpoint } = require("./utilities/TestFunctions")
|
||||||
|
|
||||||
jest.mock("pg")
|
|
||||||
const pg = require("pg")
|
const pg = require("pg")
|
||||||
|
|
||||||
describe("/datasources", () => {
|
describe("/datasources", () => {
|
||||||
|
|
|
@ -1,18 +1,4 @@
|
||||||
require("../../environment")
|
|
||||||
const automation = require("../index")
|
|
||||||
const usageQuota = require("../../utilities/usageQuota")
|
|
||||||
const thread = require("../thread")
|
|
||||||
const triggers = require("../triggers")
|
|
||||||
const { basicAutomation, basicTable } = require("../../tests/utilities/structures")
|
|
||||||
const { wait } = require("../../utilities")
|
|
||||||
const { makePartial } = require("../../tests/utilities")
|
|
||||||
const { cleanInputValues } = require("../automationUtils")
|
|
||||||
const setup = require("./utilities")
|
|
||||||
|
|
||||||
let workerJob
|
|
||||||
|
|
||||||
jest.mock("../../utilities/usageQuota")
|
jest.mock("../../utilities/usageQuota")
|
||||||
usageQuota.getAPIKey.mockReturnValue({ apiKey: "test" })
|
|
||||||
jest.mock("../thread")
|
jest.mock("../thread")
|
||||||
jest.spyOn(global.console, "error")
|
jest.spyOn(global.console, "error")
|
||||||
jest.mock("worker-farm", () => {
|
jest.mock("worker-farm", () => {
|
||||||
|
@ -30,6 +16,21 @@ jest.mock("worker-farm", () => {
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
require("../../environment")
|
||||||
|
const automation = require("../index")
|
||||||
|
const usageQuota = require("../../utilities/usageQuota")
|
||||||
|
const thread = require("../thread")
|
||||||
|
const triggers = require("../triggers")
|
||||||
|
const { basicAutomation, basicTable } = require("../../tests/utilities/structures")
|
||||||
|
const { wait } = require("../../utilities")
|
||||||
|
const { makePartial } = require("../../tests/utilities")
|
||||||
|
const { cleanInputValues } = require("../automationUtils")
|
||||||
|
const setup = require("./utilities")
|
||||||
|
|
||||||
|
let workerJob
|
||||||
|
|
||||||
|
usageQuota.getAPIKey.mockReturnValue({ apiKey: "test" })
|
||||||
|
|
||||||
describe("Run through some parts of the automations system", () => {
|
describe("Run through some parts of the automations system", () => {
|
||||||
let config = setup.getConfig()
|
let config = setup.getConfig()
|
||||||
|
|
||||||
|
|
|
@ -1,9 +1,8 @@
|
||||||
const usageQuota = require("../../utilities/usageQuota")
|
|
||||||
const env = require("../../environment")
|
|
||||||
const setup = require("./utilities")
|
|
||||||
|
|
||||||
jest.mock("../../utilities/usageQuota")
|
jest.mock("../../utilities/usageQuota")
|
||||||
|
|
||||||
|
const usageQuota = require("../../utilities/usageQuota")
|
||||||
|
const setup = require("./utilities")
|
||||||
|
|
||||||
describe("test the create row action", () => {
|
describe("test the create row action", () => {
|
||||||
let table, row
|
let table, row
|
||||||
let config = setup.getConfig()
|
let config = setup.getConfig()
|
||||||
|
|
|
@ -1,9 +1,8 @@
|
||||||
const usageQuota = require("../../utilities/usageQuota")
|
|
||||||
const env = require("../../environment")
|
|
||||||
const setup = require("./utilities")
|
|
||||||
|
|
||||||
jest.mock("../../utilities/usageQuota")
|
jest.mock("../../utilities/usageQuota")
|
||||||
|
|
||||||
|
const usageQuota = require("../../utilities/usageQuota")
|
||||||
|
const setup = require("./utilities")
|
||||||
|
|
||||||
describe("test the delete row action", () => {
|
describe("test the delete row action", () => {
|
||||||
let table, row, inputs
|
let table, row, inputs
|
||||||
let config = setup.getConfig()
|
let config = setup.getConfig()
|
||||||
|
|
|
@ -97,6 +97,13 @@ export interface QueryJson {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export interface SqlQuery {
|
||||||
|
sql: string
|
||||||
|
bindings?: {
|
||||||
|
[key: string]: any
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
export interface QueryOptions {
|
export interface QueryOptions {
|
||||||
disableReturning?: boolean
|
disableReturning?: boolean
|
||||||
}
|
}
|
||||||
|
|
|
@ -139,11 +139,11 @@ function buildDelete(knex: Knex, json: QueryJson, opts: QueryOptions) {
|
||||||
}
|
}
|
||||||
|
|
||||||
class SqlQueryBuilder {
|
class SqlQueryBuilder {
|
||||||
private readonly client: any
|
private readonly sqlClient: string
|
||||||
private readonly limit: number
|
private readonly limit: number
|
||||||
// pass through client to get flavour of SQL
|
// pass through client to get flavour of SQL
|
||||||
constructor(client: any, limit: number = BASE_LIMIT) {
|
constructor(client: string, limit: number = BASE_LIMIT) {
|
||||||
this.client = client
|
this.sqlClient = client
|
||||||
this.limit = limit
|
this.limit = limit
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -162,7 +162,7 @@ class SqlQueryBuilder {
|
||||||
* @return {{ sql: string, bindings: object }} the query ready to be passed to the driver.
|
* @return {{ sql: string, bindings: object }} the query ready to be passed to the driver.
|
||||||
*/
|
*/
|
||||||
_query(json: QueryJson, opts: QueryOptions = {}) {
|
_query(json: QueryJson, opts: QueryOptions = {}) {
|
||||||
const client = knex({ client: this.client })
|
const client = knex({ client: this.sqlClient })
|
||||||
let query
|
let query
|
||||||
switch (this._operation(json)) {
|
switch (this._operation(json)) {
|
||||||
case Operation.CREATE:
|
case Operation.CREATE:
|
||||||
|
|
|
@ -3,7 +3,9 @@ import {
|
||||||
DatasourceFieldTypes,
|
DatasourceFieldTypes,
|
||||||
QueryTypes,
|
QueryTypes,
|
||||||
QueryJson,
|
QueryJson,
|
||||||
|
SqlQuery,
|
||||||
} from "./base/definitions"
|
} from "./base/definitions"
|
||||||
|
import { getSqlQuery } from "./utils"
|
||||||
|
|
||||||
module MSSQLModule {
|
module MSSQLModule {
|
||||||
const sqlServer = require("mssql")
|
const sqlServer = require("mssql")
|
||||||
|
@ -67,10 +69,7 @@ module MSSQLModule {
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
async function internalQuery(
|
async function internalQuery(client: any, query: SqlQuery) {
|
||||||
client: any,
|
|
||||||
query: { sql: string; bindings?: object }
|
|
||||||
) {
|
|
||||||
try {
|
try {
|
||||||
return await client.query(query.sql, query.bindings || {})
|
return await client.query(query.sql, query.bindings || {})
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
|
@ -106,27 +105,27 @@ module MSSQLModule {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
async read(query: string) {
|
async read(query: SqlQuery | string) {
|
||||||
await this.connect()
|
await this.connect()
|
||||||
const response = await internalQuery(this.client, { sql: query })
|
const response = await internalQuery(this.client, getSqlQuery(query))
|
||||||
return response.recordset
|
return response.recordset
|
||||||
}
|
}
|
||||||
|
|
||||||
async create(query: string) {
|
async create(query: SqlQuery | string) {
|
||||||
await this.connect()
|
await this.connect()
|
||||||
const response = await internalQuery(this.client, { sql: query })
|
const response = await internalQuery(this.client, getSqlQuery(query))
|
||||||
return response.recordset || [{ created: true }]
|
return response.recordset || [{ created: true }]
|
||||||
}
|
}
|
||||||
|
|
||||||
async update(query: string) {
|
async update(query: SqlQuery | string) {
|
||||||
await this.connect()
|
await this.connect()
|
||||||
const response = await internalQuery(this.client, { sql: query })
|
const response = await internalQuery(this.client, getSqlQuery(query))
|
||||||
return response.recordset || [{ updated: true }]
|
return response.recordset || [{ updated: true }]
|
||||||
}
|
}
|
||||||
|
|
||||||
async delete(query: string) {
|
async delete(query: SqlQuery | string) {
|
||||||
await this.connect()
|
await this.connect()
|
||||||
const response = await internalQuery(this.client, { sql: query })
|
const response = await internalQuery(this.client, getSqlQuery(query))
|
||||||
return response.recordset || [{ deleted: true }]
|
return response.recordset || [{ deleted: true }]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -4,7 +4,9 @@ import {
|
||||||
QueryTypes,
|
QueryTypes,
|
||||||
Operation,
|
Operation,
|
||||||
QueryJson,
|
QueryJson,
|
||||||
|
SqlQuery,
|
||||||
} from "./base/definitions"
|
} from "./base/definitions"
|
||||||
|
import { getSqlQuery } from "./utils"
|
||||||
|
|
||||||
module MySQLModule {
|
module MySQLModule {
|
||||||
const mysql = require("mysql")
|
const mysql = require("mysql")
|
||||||
|
@ -98,7 +100,7 @@ module MySQLModule {
|
||||||
|
|
||||||
function internalQuery(
|
function internalQuery(
|
||||||
client: any,
|
client: any,
|
||||||
query: { sql: string; bindings?: object },
|
query: SqlQuery,
|
||||||
connect: boolean = true
|
connect: boolean = true
|
||||||
): Promise<any[]> {
|
): Promise<any[]> {
|
||||||
// Node MySQL is callback based, so we must wrap our call in a promise
|
// Node MySQL is callback based, so we must wrap our call in a promise
|
||||||
|
@ -190,22 +192,22 @@ module MySQLModule {
|
||||||
this.tables = tables
|
this.tables = tables
|
||||||
}
|
}
|
||||||
|
|
||||||
async create(query: string) {
|
async create(query: SqlQuery | string) {
|
||||||
const results = await internalQuery(this.client, { sql: query })
|
const results = await internalQuery(this.client, getSqlQuery(query))
|
||||||
return results.length ? results : [{ created: true }]
|
return results.length ? results : [{ created: true }]
|
||||||
}
|
}
|
||||||
|
|
||||||
read(query: string) {
|
read(query: SqlQuery | string) {
|
||||||
return internalQuery(this.client, { sql: query })
|
return internalQuery(this.client, getSqlQuery(query))
|
||||||
}
|
}
|
||||||
|
|
||||||
async update(query: string) {
|
async update(query: SqlQuery | string) {
|
||||||
const results = await internalQuery(this.client, { sql: query })
|
const results = await internalQuery(this.client, getSqlQuery(query))
|
||||||
return results.length ? results : [{ updated: true }]
|
return results.length ? results : [{ updated: true }]
|
||||||
}
|
}
|
||||||
|
|
||||||
async delete(query: string) {
|
async delete(query: SqlQuery | string) {
|
||||||
const results = await internalQuery(this.client, { sql: query })
|
const results = await internalQuery(this.client, getSqlQuery(query))
|
||||||
return results.length ? results : [{ deleted: true }]
|
return results.length ? results : [{ deleted: true }]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -3,8 +3,10 @@ import {
|
||||||
DatasourceFieldTypes,
|
DatasourceFieldTypes,
|
||||||
QueryTypes,
|
QueryTypes,
|
||||||
QueryJson,
|
QueryJson,
|
||||||
|
SqlQuery,
|
||||||
} from "./base/definitions"
|
} from "./base/definitions"
|
||||||
import { Table } from "../constants/definitions"
|
import { Table } from "../constants/definitions"
|
||||||
|
import { getSqlQuery } from "./utils"
|
||||||
|
|
||||||
module PostgresModule {
|
module PostgresModule {
|
||||||
const { Pool } = require("pg")
|
const { Pool } = require("pg")
|
||||||
|
@ -88,10 +90,7 @@ module PostgresModule {
|
||||||
json: FieldTypes.JSON,
|
json: FieldTypes.JSON,
|
||||||
}
|
}
|
||||||
|
|
||||||
async function internalQuery(
|
async function internalQuery(client: any, query: SqlQuery) {
|
||||||
client: any,
|
|
||||||
query: { sql: string; bindings?: object }
|
|
||||||
) {
|
|
||||||
try {
|
try {
|
||||||
return await client.query(query.sql, query.bindings || {})
|
return await client.query(query.sql, query.bindings || {})
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
|
@ -179,23 +178,23 @@ module PostgresModule {
|
||||||
this.tables = tables
|
this.tables = tables
|
||||||
}
|
}
|
||||||
|
|
||||||
async create(sql: string) {
|
async create(query: SqlQuery | string) {
|
||||||
const response = await internalQuery(this.client, { sql })
|
const response = await internalQuery(this.client, getSqlQuery(query))
|
||||||
return response.rows.length ? response.rows : [{ created: true }]
|
return response.rows.length ? response.rows : [{ created: true }]
|
||||||
}
|
}
|
||||||
|
|
||||||
async read(sql: string) {
|
async read(query: SqlQuery | string) {
|
||||||
const response = await internalQuery(this.client, { sql })
|
const response = await internalQuery(this.client, getSqlQuery(query))
|
||||||
return response.rows
|
return response.rows
|
||||||
}
|
}
|
||||||
|
|
||||||
async update(sql: string) {
|
async update(query: SqlQuery | string) {
|
||||||
const response = await internalQuery(this.client, { sql })
|
const response = await internalQuery(this.client, getSqlQuery(query))
|
||||||
return response.rows.length ? response.rows : [{ updated: true }]
|
return response.rows.length ? response.rows : [{ updated: true }]
|
||||||
}
|
}
|
||||||
|
|
||||||
async delete(sql: string) {
|
async delete(query: SqlQuery | string) {
|
||||||
const response = await internalQuery(this.client, { sql })
|
const response = await internalQuery(this.client, getSqlQuery(query))
|
||||||
return response.rows.length ? response.rows : [{ deleted: true }]
|
return response.rows.length ? response.rows : [{ deleted: true }]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,3 @@
|
||||||
const PouchDB = require("pouchdb")
|
|
||||||
const CouchDBIntegration = require("../couchdb")
|
|
||||||
jest.mock("pouchdb", () => function CouchDBMock() {
|
jest.mock("pouchdb", () => function CouchDBMock() {
|
||||||
this.post = jest.fn()
|
this.post = jest.fn()
|
||||||
this.allDocs = jest.fn(() => ({ rows: [] }))
|
this.allDocs = jest.fn(() => ({ rows: [] }))
|
||||||
|
@ -8,6 +6,7 @@ jest.mock("pouchdb", () => function CouchDBMock() {
|
||||||
this.plugin = jest.fn()
|
this.plugin = jest.fn()
|
||||||
})
|
})
|
||||||
|
|
||||||
|
const CouchDBIntegration = require("../couchdb")
|
||||||
|
|
||||||
class TestConfiguration {
|
class TestConfiguration {
|
||||||
constructor(config = {}) {
|
constructor(config = {}) {
|
||||||
|
|
|
@ -20,7 +20,7 @@ describe("MS SQL Server Integration", () => {
|
||||||
const response = await config.integration.create({
|
const response = await config.integration.create({
|
||||||
sql
|
sql
|
||||||
})
|
})
|
||||||
expect(config.integration.client.query).toHaveBeenCalledWith(sql, undefined)
|
expect(config.integration.client.query).toHaveBeenCalledWith(sql, {})
|
||||||
})
|
})
|
||||||
|
|
||||||
it("calls the read method with the correct params", async () => {
|
it("calls the read method with the correct params", async () => {
|
||||||
|
@ -28,7 +28,7 @@ describe("MS SQL Server Integration", () => {
|
||||||
const response = await config.integration.read({
|
const response = await config.integration.read({
|
||||||
sql
|
sql
|
||||||
})
|
})
|
||||||
expect(config.integration.client.query).toHaveBeenCalledWith(sql, undefined)
|
expect(config.integration.client.query).toHaveBeenCalledWith(sql, {})
|
||||||
})
|
})
|
||||||
|
|
||||||
describe("no rows returned", () => {
|
describe("no rows returned", () => {
|
||||||
|
|
|
@ -19,7 +19,7 @@ describe("MySQL Integration", () => {
|
||||||
await config.integration.create({
|
await config.integration.create({
|
||||||
sql
|
sql
|
||||||
})
|
})
|
||||||
expect(config.integration.client.query).toHaveBeenCalledWith(sql, undefined, expect.any(Function))
|
expect(config.integration.client.query).toHaveBeenCalledWith(sql, {}, expect.any(Function))
|
||||||
})
|
})
|
||||||
|
|
||||||
it("calls the read method with the correct params", async () => {
|
it("calls the read method with the correct params", async () => {
|
||||||
|
@ -27,7 +27,7 @@ describe("MySQL Integration", () => {
|
||||||
await config.integration.read({
|
await config.integration.read({
|
||||||
sql
|
sql
|
||||||
})
|
})
|
||||||
expect(config.integration.client.query).toHaveBeenCalledWith(sql, undefined, expect.any(Function))
|
expect(config.integration.client.query).toHaveBeenCalledWith(sql, {}, expect.any(Function))
|
||||||
})
|
})
|
||||||
|
|
||||||
it("calls the update method with the correct params", async () => {
|
it("calls the update method with the correct params", async () => {
|
||||||
|
@ -35,7 +35,7 @@ describe("MySQL Integration", () => {
|
||||||
await config.integration.update({
|
await config.integration.update({
|
||||||
sql
|
sql
|
||||||
})
|
})
|
||||||
expect(config.integration.client.query).toHaveBeenCalledWith(sql, undefined, expect.any(Function))
|
expect(config.integration.client.query).toHaveBeenCalledWith(sql, {}, expect.any(Function))
|
||||||
})
|
})
|
||||||
|
|
||||||
it("calls the delete method with the correct params", async () => {
|
it("calls the delete method with the correct params", async () => {
|
||||||
|
@ -43,7 +43,7 @@ describe("MySQL Integration", () => {
|
||||||
await config.integration.delete({
|
await config.integration.delete({
|
||||||
sql
|
sql
|
||||||
})
|
})
|
||||||
expect(config.integration.client.query).toHaveBeenCalledWith(sql, undefined, expect.any(Function))
|
expect(config.integration.client.query).toHaveBeenCalledWith(sql, {}, expect.any(Function))
|
||||||
})
|
})
|
||||||
|
|
||||||
describe("no rows returned", () => {
|
describe("no rows returned", () => {
|
||||||
|
|
|
@ -20,7 +20,7 @@ describe("Postgres Integration", () => {
|
||||||
const response = await config.integration.create({
|
const response = await config.integration.create({
|
||||||
sql
|
sql
|
||||||
})
|
})
|
||||||
expect(pg.queryMock).toHaveBeenCalledWith(sql, undefined)
|
expect(pg.queryMock).toHaveBeenCalledWith(sql, {})
|
||||||
})
|
})
|
||||||
|
|
||||||
it("calls the read method with the correct params", async () => {
|
it("calls the read method with the correct params", async () => {
|
||||||
|
@ -28,7 +28,7 @@ describe("Postgres Integration", () => {
|
||||||
const response = await config.integration.read({
|
const response = await config.integration.read({
|
||||||
sql
|
sql
|
||||||
})
|
})
|
||||||
expect(pg.queryMock).toHaveBeenCalledWith(sql, undefined)
|
expect(pg.queryMock).toHaveBeenCalledWith(sql, {})
|
||||||
})
|
})
|
||||||
|
|
||||||
it("calls the update method with the correct params", async () => {
|
it("calls the update method with the correct params", async () => {
|
||||||
|
@ -36,7 +36,7 @@ describe("Postgres Integration", () => {
|
||||||
const response = await config.integration.update({
|
const response = await config.integration.update({
|
||||||
sql
|
sql
|
||||||
})
|
})
|
||||||
expect(pg.queryMock).toHaveBeenCalledWith(sql, undefined)
|
expect(pg.queryMock).toHaveBeenCalledWith(sql, {})
|
||||||
})
|
})
|
||||||
|
|
||||||
it("calls the delete method with the correct params", async () => {
|
it("calls the delete method with the correct params", async () => {
|
||||||
|
@ -44,7 +44,7 @@ describe("Postgres Integration", () => {
|
||||||
await config.integration.delete({
|
await config.integration.delete({
|
||||||
sql
|
sql
|
||||||
})
|
})
|
||||||
expect(pg.queryMock).toHaveBeenCalledWith(sql, undefined)
|
expect(pg.queryMock).toHaveBeenCalledWith(sql, {})
|
||||||
})
|
})
|
||||||
|
|
||||||
describe("no rows returned", () => {
|
describe("no rows returned", () => {
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
|
jest.mock("node-fetch", () => jest.fn(() => ({ json: jest.fn(), text: jest.fn() })))
|
||||||
const fetch = require("node-fetch")
|
const fetch = require("node-fetch")
|
||||||
const RestIntegration = require("../rest")
|
const RestIntegration = require("../rest")
|
||||||
jest.mock("node-fetch", () => jest.fn(() => ({ json: jest.fn(), text: jest.fn() })))
|
|
||||||
|
|
||||||
class TestConfiguration {
|
class TestConfiguration {
|
||||||
constructor(config = {}) {
|
constructor(config = {}) {
|
||||||
|
|
|
@ -1,17 +1,18 @@
|
||||||
|
import { SqlQuery } from "./base/definitions"
|
||||||
const { DocumentTypes, SEPARATOR } = require("../db/utils")
|
const { DocumentTypes, SEPARATOR } = require("../db/utils")
|
||||||
const { FieldTypes } = require("../constants")
|
const { FieldTypes } = require("../constants")
|
||||||
|
|
||||||
const DOUBLE_SEPARATOR = `${SEPARATOR}${SEPARATOR}`
|
const DOUBLE_SEPARATOR = `${SEPARATOR}${SEPARATOR}`
|
||||||
|
|
||||||
exports.isExternalTable = tableId => {
|
export function isExternalTable(tableId: string) {
|
||||||
return tableId.includes(DocumentTypes.DATASOURCE)
|
return tableId.includes(DocumentTypes.DATASOURCE)
|
||||||
}
|
}
|
||||||
|
|
||||||
exports.buildExternalTableId = (datasourceId, tableName) => {
|
export function buildExternalTableId(datasourceId: string, tableName: string) {
|
||||||
return `${datasourceId}${DOUBLE_SEPARATOR}${tableName}`
|
return `${datasourceId}${DOUBLE_SEPARATOR}${tableName}`
|
||||||
}
|
}
|
||||||
|
|
||||||
exports.breakExternalTableId = tableId => {
|
export function breakExternalTableId(tableId: string) {
|
||||||
const parts = tableId.split(DOUBLE_SEPARATOR)
|
const parts = tableId.split(DOUBLE_SEPARATOR)
|
||||||
let tableName = parts.pop()
|
let tableName = parts.pop()
|
||||||
// if they need joined
|
// if they need joined
|
||||||
|
@ -19,7 +20,7 @@ exports.breakExternalTableId = tableId => {
|
||||||
return { datasourceId, tableName }
|
return { datasourceId, tableName }
|
||||||
}
|
}
|
||||||
|
|
||||||
exports.generateRowIdField = (keyProps = []) => {
|
export function generateRowIdField(keyProps: any[] = []) {
|
||||||
if (!Array.isArray(keyProps)) {
|
if (!Array.isArray(keyProps)) {
|
||||||
keyProps = [keyProps]
|
keyProps = [keyProps]
|
||||||
}
|
}
|
||||||
|
@ -28,14 +29,14 @@ exports.generateRowIdField = (keyProps = []) => {
|
||||||
}
|
}
|
||||||
|
|
||||||
// should always return an array
|
// should always return an array
|
||||||
exports.breakRowIdField = _id => {
|
export function breakRowIdField(_id: string) {
|
||||||
if (!_id) {
|
if (!_id) {
|
||||||
return null
|
return null
|
||||||
}
|
}
|
||||||
return JSON.parse(decodeURIComponent(_id))
|
return JSON.parse(decodeURIComponent(_id))
|
||||||
}
|
}
|
||||||
|
|
||||||
exports.convertType = (type, map) => {
|
export function convertType(type: string, map: { [key: string]: any }) {
|
||||||
for (let [external, internal] of Object.entries(map)) {
|
for (let [external, internal] of Object.entries(map)) {
|
||||||
if (type.toLowerCase().includes(external)) {
|
if (type.toLowerCase().includes(external)) {
|
||||||
return internal
|
return internal
|
||||||
|
@ -43,3 +44,11 @@ exports.convertType = (type, map) => {
|
||||||
}
|
}
|
||||||
return FieldTypes.STRING
|
return FieldTypes.STRING
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function getSqlQuery(query: SqlQuery | string): SqlQuery {
|
||||||
|
if (typeof query === "string") {
|
||||||
|
return { sql: query }
|
||||||
|
} else {
|
||||||
|
return query
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,6 +1,3 @@
|
||||||
const authorizedMiddleware = require("../authorized")
|
|
||||||
const env = require("../../environment")
|
|
||||||
const { PermissionTypes, PermissionLevels } = require("@budibase/auth/permissions")
|
|
||||||
jest.mock("../../environment", () => ({
|
jest.mock("../../environment", () => ({
|
||||||
prod: false,
|
prod: false,
|
||||||
isTest: () => true,
|
isTest: () => true,
|
||||||
|
@ -10,6 +7,9 @@ jest.mock("../../environment", () => ({
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
)
|
)
|
||||||
|
const authorizedMiddleware = require("../authorized")
|
||||||
|
const env = require("../../environment")
|
||||||
|
const { PermissionTypes, PermissionLevels } = require("@budibase/auth/permissions")
|
||||||
|
|
||||||
class TestConfiguration {
|
class TestConfiguration {
|
||||||
constructor(role) {
|
constructor(role) {
|
||||||
|
@ -77,17 +77,6 @@ describe("Authorization middleware", () => {
|
||||||
config = new TestConfiguration()
|
config = new TestConfiguration()
|
||||||
})
|
})
|
||||||
|
|
||||||
describe("external web hook call", () => {
|
|
||||||
beforeEach(() => {
|
|
||||||
config = new TestConfiguration()
|
|
||||||
config.setEnvironment(true)
|
|
||||||
config.setRequestHeaders({
|
|
||||||
"x-api-key": "abc123",
|
|
||||||
"x-instanceid": "instance123",
|
|
||||||
})
|
|
||||||
})
|
|
||||||
})
|
|
||||||
|
|
||||||
describe("non-webhook call", () => {
|
describe("non-webhook call", () => {
|
||||||
let config
|
let config
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,3 @@
|
||||||
const usageQuotaMiddleware = require("../usageQuota")
|
|
||||||
const usageQuota = require("../../utilities/usageQuota")
|
|
||||||
const CouchDB = require("../../db")
|
|
||||||
const env = require("../../environment")
|
|
||||||
|
|
||||||
jest.mock("../../db")
|
jest.mock("../../db")
|
||||||
jest.mock("../../utilities/usageQuota")
|
jest.mock("../../utilities/usageQuota")
|
||||||
jest.mock("../../environment", () => ({
|
jest.mock("../../environment", () => ({
|
||||||
|
@ -12,6 +7,11 @@ jest.mock("../../environment", () => ({
|
||||||
_set: () => {},
|
_set: () => {},
|
||||||
}))
|
}))
|
||||||
|
|
||||||
|
const usageQuotaMiddleware = require("../usageQuota")
|
||||||
|
const usageQuota = require("../../utilities/usageQuota")
|
||||||
|
const CouchDB = require("../../db")
|
||||||
|
const env = require("../../environment")
|
||||||
|
|
||||||
class TestConfiguration {
|
class TestConfiguration {
|
||||||
constructor() {
|
constructor() {
|
||||||
this.throw = jest.fn()
|
this.throw = jest.fn()
|
||||||
|
|
|
@ -90,6 +90,9 @@ class TestConfiguration {
|
||||||
}
|
}
|
||||||
|
|
||||||
end() {
|
end() {
|
||||||
|
if (!this) {
|
||||||
|
return
|
||||||
|
}
|
||||||
if (this.server) {
|
if (this.server) {
|
||||||
this.server.close()
|
this.server.close()
|
||||||
}
|
}
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue