diff --git a/.prettierignore b/.prettierignore
index 64607d74ab..ce7617224b 100644
--- a/.prettierignore
+++ b/.prettierignore
@@ -1,13 +1,11 @@
node_modules
dist
-*.spec.js
-packages/builder/src/components/design/AppPreview/CurrentItemPreview.svelte
packages/server/builder
packages/server/coverage
-packages/worker/coverage
-packages/backend-core/coverage
packages/server/client
packages/server/src/definitions/openapi.ts
+packages/worker/coverage
+packages/backend-core/coverage
packages/builder/.routify
packages/sdk/sdk
packages/pro/coverage
\ No newline at end of file
diff --git a/packages/backend-core/src/db/tests/index.spec.js b/packages/backend-core/src/db/tests/index.spec.js
index 0d257f7ed7..e03c9a5b0e 100644
--- a/packages/backend-core/src/db/tests/index.spec.js
+++ b/packages/backend-core/src/db/tests/index.spec.js
@@ -5,7 +5,6 @@ const { getDB } = require("../db")
describe("db", () => {
describe("getDB", () => {
it("returns a db", async () => {
-
const dbName = structures.db.id()
const db = getDB(dbName)
expect(db).toBeDefined()
diff --git a/packages/backend-core/src/redis/utils.ts b/packages/backend-core/src/redis/utils.ts
index 5187fe13f8..4d8b1bb9a4 100644
--- a/packages/backend-core/src/redis/utils.ts
+++ b/packages/backend-core/src/redis/utils.ts
@@ -75,10 +75,12 @@ export function getRedisConnectionDetails() {
}
const [host, port] = url.split(":")
+ const portNumber = parseInt(port)
return {
host,
password,
- port: parseInt(port),
+ // assume default port for redis if invalid found
+ port: isNaN(portNumber) ? 6379 : portNumber,
}
}
diff --git a/packages/backend-core/tests/core/users/users.spec.js b/packages/backend-core/tests/core/users/users.spec.js
index ae7109344a..f08c435b95 100644
--- a/packages/backend-core/tests/core/users/users.spec.js
+++ b/packages/backend-core/tests/core/users/users.spec.js
@@ -1,5 +1,5 @@
-const _ = require('lodash/fp')
-const {structures} = require("../../../tests")
+const _ = require("lodash/fp")
+const { structures } = require("../../../tests")
jest.mock("../../../src/context")
jest.mock("../../../src/db")
@@ -7,10 +7,9 @@ jest.mock("../../../src/db")
const context = require("../../../src/context")
const db = require("../../../src/db")
-const {getCreatorCount} = require('../../../src/users/users')
+const { getCreatorCount } = require("../../../src/users/users")
describe("Users", () => {
-
let getGlobalDBMock
let getGlobalUserParamsMock
let paginationMock
@@ -26,26 +25,26 @@ describe("Users", () => {
it("Retrieves the number of creators", async () => {
const getUsers = (offset, limit, creators = false) => {
const range = _.range(offset, limit)
- const opts = creators ? {builder: {global: true}} : undefined
+ const opts = creators ? { builder: { global: true } } : undefined
return range.map(() => structures.users.user(opts))
}
const page1Data = getUsers(0, 8)
const page2Data = getUsers(8, 12, true)
getGlobalDBMock.mockImplementation(() => ({
- name : "fake-db",
+ name: "fake-db",
allDocs: () => ({
- rows: [...page1Data, ...page2Data]
- })
+ rows: [...page1Data, ...page2Data],
+ }),
}))
paginationMock.mockImplementationOnce(() => ({
data: page1Data,
hasNextPage: true,
- nextPage: "1"
+ nextPage: "1",
}))
paginationMock.mockImplementation(() => ({
data: page2Data,
hasNextPage: false,
- nextPage: undefined
+ nextPage: undefined,
}))
const creatorsCount = await getCreatorCount()
expect(creatorsCount).toBe(4)
diff --git a/packages/server/src/api/controllers/query/import/sources/tests/curl/curl.spec.js b/packages/server/src/api/controllers/query/import/sources/tests/curl/curl.spec.js
index 2b17685f24..7ea2f8932b 100644
--- a/packages/server/src/api/controllers/query/import/sources/tests/curl/curl.spec.js
+++ b/packages/server/src/api/controllers/query/import/sources/tests/curl/curl.spec.js
@@ -1,13 +1,13 @@
const { Curl } = require("../../curl")
const fs = require("fs")
-const path = require('path')
+const path = require("path")
-const getData = (file) => {
+const getData = file => {
return fs.readFileSync(path.join(__dirname, `./data/${file}.txt`), "utf8")
}
describe("Curl Import", () => {
- let curl
+ let curl
beforeEach(() => {
curl = new Curl()
@@ -28,7 +28,7 @@ describe("Curl Import", () => {
expect(supported).toBe(false)
})
- const init = async (file) => {
+ const init = async file => {
await curl.isSupported(getData(file))
}
@@ -37,10 +37,9 @@ describe("Curl Import", () => {
const info = await curl.getInfo()
expect(info.name).toBe("example.com")
})
-
+
describe("Returns queries", () => {
-
- const getQueries = async (file) => {
+ const getQueries = async file => {
await init(file)
const queries = await curl.getQueries()
expect(queries.length).toBe(1)
@@ -58,7 +57,7 @@ describe("Curl Import", () => {
await testVerb("put", "update")
await testVerb("delete", "delete")
await testVerb("patch", "patch")
- })
+ })
const testPath = async (file, urlPath) => {
const queries = await getQueries(file)
@@ -66,8 +65,8 @@ describe("Curl Import", () => {
}
it("populates path", async () => {
- await testPath("get", "http://example.com/")
- await testPath("path", "http://example.com/paths/abc")
+ await testPath("get", "http://example.com/")
+ await testPath("path", "http://example.com/paths/abc")
})
const testHeaders = async (file, headers) => {
@@ -77,7 +76,10 @@ describe("Curl Import", () => {
it("populates headers", async () => {
await testHeaders("get", {})
- await testHeaders("headers", { "x-bb-header-1" : "123", "x-bb-header-2" : "456"} )
+ await testHeaders("headers", {
+ "x-bb-header-1": "123",
+ "x-bb-header-2": "456",
+ })
})
const testQuery = async (file, queryString) => {
@@ -91,13 +93,15 @@ describe("Curl Import", () => {
const testBody = async (file, body) => {
const queries = await getQueries(file)
- expect(queries[0].fields.requestBody).toStrictEqual(JSON.stringify(body, null, 2))
+ expect(queries[0].fields.requestBody).toStrictEqual(
+ JSON.stringify(body, null, 2)
+ )
}
it("populates body", async () => {
await testBody("get", undefined)
- await testBody("post", { "key" : "val" })
+ await testBody("post", { key: "val" })
await testBody("empty-body", {})
})
})
-})
\ No newline at end of file
+})
diff --git a/packages/server/src/api/controllers/query/import/sources/tests/openapi2/openapi2.spec.js b/packages/server/src/api/controllers/query/import/sources/tests/openapi2/openapi2.spec.js
index 3c5aa89e3c..b61991f7d6 100644
--- a/packages/server/src/api/controllers/query/import/sources/tests/openapi2/openapi2.spec.js
+++ b/packages/server/src/api/controllers/query/import/sources/tests/openapi2/openapi2.spec.js
@@ -1,13 +1,16 @@
const { OpenAPI2 } = require("../../openapi2")
const fs = require("fs")
-const path = require('path')
+const path = require("path")
const getData = (file, extension) => {
- return fs.readFileSync(path.join(__dirname, `./data/${file}/${file}.${extension}`), "utf8")
+ return fs.readFileSync(
+ path.join(__dirname, `./data/${file}/${file}.${extension}`),
+ "utf8"
+ )
}
describe("OpenAPI2 Import", () => {
- let openapi2
+ let openapi2
beforeEach(() => {
openapi2 = new OpenAPI2()
@@ -47,9 +50,9 @@ describe("OpenAPI2 Import", () => {
it("returns import info", async () => {
await runTests("petstore", testImportInfo)
})
-
+
describe("Returns queries", () => {
- const indexQueries = (queries) => {
+ const indexQueries = queries => {
return queries.reduce((acc, query) => {
acc[query.name] = query
return acc
@@ -72,15 +75,15 @@ describe("OpenAPI2 Import", () => {
it("populates verb", async () => {
const assertions = {
- "createEntity" : "create",
- "getEntities" : "read",
- "getEntity" : "read",
- "updateEntity" : "update",
- "patchEntity" : "patch",
- "deleteEntity" : "delete"
+ createEntity: "create",
+ getEntities: "read",
+ getEntity: "read",
+ updateEntity: "update",
+ patchEntity: "patch",
+ deleteEntity: "delete",
}
await runTests("crud", testVerb, assertions)
- })
+ })
const testPath = async (file, extension, assertions) => {
const queries = await getQueries(file, extension)
@@ -91,12 +94,12 @@ describe("OpenAPI2 Import", () => {
it("populates path", async () => {
const assertions = {
- "createEntity" : "http://example.com/entities",
- "getEntities" : "http://example.com/entities",
- "getEntity" : "http://example.com/entities/{{entityId}}",
- "updateEntity" : "http://example.com/entities/{{entityId}}",
- "patchEntity" : "http://example.com/entities/{{entityId}}",
- "deleteEntity" : "http://example.com/entities/{{entityId}}"
+ createEntity: "http://example.com/entities",
+ getEntities: "http://example.com/entities",
+ getEntity: "http://example.com/entities/{{entityId}}",
+ updateEntity: "http://example.com/entities/{{entityId}}",
+ patchEntity: "http://example.com/entities/{{entityId}}",
+ deleteEntity: "http://example.com/entities/{{entityId}}",
}
await runTests("crud", testPath, assertions)
})
@@ -109,27 +112,25 @@ describe("OpenAPI2 Import", () => {
}
const contentTypeHeader = {
- "Content-Type" : "application/json",
+ "Content-Type": "application/json",
}
it("populates headers", async () => {
const assertions = {
- "createEntity" : {
- ...contentTypeHeader
+ createEntity: {
+ ...contentTypeHeader,
},
- "getEntities" : {
+ getEntities: {},
+ getEntity: {},
+ updateEntity: {
+ ...contentTypeHeader,
},
- "getEntity" : {
+ patchEntity: {
+ ...contentTypeHeader,
},
- "updateEntity" : {
- ...contentTypeHeader
+ deleteEntity: {
+ "x-api-key": "{{x-api-key}}",
},
- "patchEntity" : {
- ...contentTypeHeader
- },
- "deleteEntity" : {
- "x-api-key" : "{{x-api-key}}",
- }
}
await runTests("crud", testHeaders, assertions)
@@ -138,18 +139,20 @@ describe("OpenAPI2 Import", () => {
const testQuery = async (file, extension, assertions) => {
const queries = await getQueries(file, extension)
for (let [operationId, queryString] of Object.entries(assertions)) {
- expect(queries[operationId].fields.queryString).toStrictEqual(queryString)
+ expect(queries[operationId].fields.queryString).toStrictEqual(
+ queryString
+ )
}
}
it("populates query", async () => {
const assertions = {
- "createEntity" : "",
- "getEntities" : "page={{page}}&size={{size}}",
- "getEntity" : "",
- "updateEntity" : "",
- "patchEntity" : "",
- "deleteEntity" : ""
+ createEntity: "",
+ getEntities: "page={{page}}&size={{size}}",
+ getEntity: "",
+ updateEntity: "",
+ patchEntity: "",
+ deleteEntity: "",
}
await runTests("crud", testQuery, assertions)
})
@@ -163,45 +166,45 @@ describe("OpenAPI2 Import", () => {
it("populates parameters", async () => {
const assertions = {
- "createEntity" : [],
- "getEntities" : [
+ createEntity: [],
+ getEntities: [
{
- "name" : "page",
- "default" : "",
+ name: "page",
+ default: "",
},
{
- "name" : "size",
- "default" : "",
- }
+ name: "size",
+ default: "",
+ },
],
- "getEntity" : [
+ getEntity: [
{
- "name" : "entityId",
- "default" : "",
- }
+ name: "entityId",
+ default: "",
+ },
],
- "updateEntity" : [
+ updateEntity: [
{
- "name" : "entityId",
- "default" : "",
- }
+ name: "entityId",
+ default: "",
+ },
],
- "patchEntity" : [
+ patchEntity: [
{
- "name" : "entityId",
- "default" : "",
- }
+ name: "entityId",
+ default: "",
+ },
],
- "deleteEntity" : [
+ deleteEntity: [
{
- "name" : "entityId",
- "default" : "",
+ name: "entityId",
+ default: "",
},
{
- "name" : "x-api-key",
- "default" : "",
- }
- ]
+ name: "x-api-key",
+ default: "",
+ },
+ ],
}
await runTests("crud", testParameters, assertions)
})
@@ -209,30 +212,32 @@ describe("OpenAPI2 Import", () => {
const testBody = async (file, extension, assertions) => {
const queries = await getQueries(file, extension)
for (let [operationId, body] of Object.entries(assertions)) {
- expect(queries[operationId].fields.requestBody).toStrictEqual(JSON.stringify(body, null, 2))
+ expect(queries[operationId].fields.requestBody).toStrictEqual(
+ JSON.stringify(body, null, 2)
+ )
}
}
it("populates body", async () => {
const assertions = {
- "createEntity" : {
- "name" : "name",
- "type" : "type",
+ createEntity: {
+ name: "name",
+ type: "type",
},
- "getEntities" : undefined,
- "getEntity" : undefined,
- "updateEntity" : {
- "id": 1,
- "name" : "name",
- "type" : "type",
+ getEntities: undefined,
+ getEntity: undefined,
+ updateEntity: {
+ id: 1,
+ name: "name",
+ type: "type",
},
- "patchEntity" : {
- "id": 1,
- "name" : "name",
- "type" : "type",
+ patchEntity: {
+ id: 1,
+ name: "name",
+ type: "type",
},
- "deleteEntity" : undefined
+ deleteEntity: undefined,
}
await runTests("crud", testBody, assertions)
})
})
-})
\ No newline at end of file
+})
diff --git a/packages/server/src/api/controllers/query/import/tests/index.spec.js b/packages/server/src/api/controllers/query/import/tests/index.spec.js
index 60030ae7f3..cef27abb08 100644
--- a/packages/server/src/api/controllers/query/import/tests/index.spec.js
+++ b/packages/server/src/api/controllers/query/import/tests/index.spec.js
@@ -1,11 +1,14 @@
const TestConfig = require("../../../../../tests/utilities/TestConfiguration")
const { RestImporter } = require("../index")
const fs = require("fs")
-const path = require('path')
-const { events} = require("@budibase/backend-core")
+const path = require("path")
+const { events } = require("@budibase/backend-core")
-const getData = (file) => {
- return fs.readFileSync(path.join(__dirname, `../sources/tests/${file}`), "utf8")
+const getData = file => {
+ return fs.readFileSync(
+ path.join(__dirname, `../sources/tests/${file}`),
+ "utf8"
+ )
}
// openapi2 (swagger)
@@ -14,7 +17,7 @@ const oapi2CrudYaml = getData("openapi2/data/crud/crud.json")
const oapi2PetstoreJson = getData("openapi2/data/petstore/petstore.json")
const oapi2PetstoreYaml = getData("openapi2/data/petstore/petstore.json")
-// openapi3
+// openapi3
const oapi3CrudJson = getData("openapi3/data/crud/crud.json")
const oapi3CrudYaml = getData("openapi3/data/crud/crud.json")
const oapi3PetstoreJson = getData("openapi3/data/petstore/petstore.json")
@@ -35,7 +38,7 @@ const datasets = {
oapi3PetstoreJson,
oapi3PetstoreYaml,
// curl
- curl
+ curl,
}
describe("Rest Importer", () => {
@@ -45,9 +48,9 @@ describe("Rest Importer", () => {
await config.init()
})
- let restImporter
+ let restImporter
- const init = async (data) => {
+ const init = async data => {
restImporter = new RestImporter(data)
await restImporter.init()
}
@@ -69,35 +72,35 @@ describe("Rest Importer", () => {
it("gets info", async () => {
const assertions = {
// openapi2 (swagger)
- "oapi2CrudJson" : {
+ oapi2CrudJson: {
name: "CRUD",
},
- "oapi2CrudYaml" : {
+ oapi2CrudYaml: {
name: "CRUD",
},
- "oapi2PetstoreJson" : {
+ oapi2PetstoreJson: {
name: "Swagger Petstore",
},
- "oapi2PetstoreYaml" :{
+ oapi2PetstoreYaml: {
name: "Swagger Petstore",
},
// openapi3
- "oapi3CrudJson" : {
+ oapi3CrudJson: {
name: "CRUD",
},
- "oapi3CrudYaml" : {
+ oapi3CrudYaml: {
name: "CRUD",
},
- "oapi3PetstoreJson" : {
+ oapi3PetstoreJson: {
name: "Swagger Petstore - OpenAPI 3.0",
},
- "oapi3PetstoreYaml" :{
+ oapi3PetstoreYaml: {
name: "Swagger Petstore - OpenAPI 3.0",
},
// curl
- "curl": {
+ curl: {
name: "example.com",
- }
+ },
}
await runTest(testGetInfo, assertions)
})
@@ -109,54 +112,58 @@ describe("Rest Importer", () => {
expect(importResult.errorQueries.length).toBe(0)
expect(importResult.queries.length).toBe(assertions[key].count)
expect(events.query.imported).toBeCalledTimes(1)
- expect(events.query.imported).toBeCalledWith(datasource, assertions[key].source, assertions[key].count)
+ expect(events.query.imported).toBeCalledWith(
+ datasource,
+ assertions[key].source,
+ assertions[key].count
+ )
jest.clearAllMocks()
}
it("imports queries", async () => {
- // simple sanity assertions that the whole dataset
+ // simple sanity assertions that the whole dataset
// makes it through the importer
const assertions = {
// openapi2 (swagger)
- "oapi2CrudJson" : {
+ oapi2CrudJson: {
count: 6,
source: "openapi2.0",
},
- "oapi2CrudYaml" :{
+ oapi2CrudYaml: {
count: 6,
- source: "openapi2.0"
+ source: "openapi2.0",
},
- "oapi2PetstoreJson" : {
+ oapi2PetstoreJson: {
count: 20,
- source: "openapi2.0"
+ source: "openapi2.0",
},
- "oapi2PetstoreYaml" :{
+ oapi2PetstoreYaml: {
count: 20,
- source: "openapi2.0"
+ source: "openapi2.0",
},
// openapi3
- "oapi3CrudJson" : {
+ oapi3CrudJson: {
count: 6,
- source: "openapi3.0"
+ source: "openapi3.0",
},
- "oapi3CrudYaml" :{
+ oapi3CrudYaml: {
count: 6,
- source: "openapi3.0"
+ source: "openapi3.0",
},
- "oapi3PetstoreJson" : {
+ oapi3PetstoreJson: {
count: 19,
- source: "openapi3.0"
+ source: "openapi3.0",
},
- "oapi3PetstoreYaml" :{
+ oapi3PetstoreYaml: {
count: 19,
- source: "openapi3.0"
+ source: "openapi3.0",
},
// curl
- "curl": {
+ curl: {
count: 1,
- source: "curl"
- }
+ source: "curl",
+ },
}
await runTest(testImportQueries, assertions)
})
-})
\ No newline at end of file
+})
diff --git a/packages/server/src/api/controllers/view/tests/viewBuilder.spec.js b/packages/server/src/api/controllers/view/tests/viewBuilder.spec.js
index 303bb09cf6..7f4298b2ff 100644
--- a/packages/server/src/api/controllers/view/tests/viewBuilder.spec.js
+++ b/packages/server/src/api/controllers/view/tests/viewBuilder.spec.js
@@ -1,65 +1,75 @@
-const viewTemplate = require("../viewBuilder").default;
+const viewTemplate = require("../viewBuilder").default
describe("viewBuilder", () => {
-
describe("Filter", () => {
it("creates a view with multiple filters and conjunctions", () => {
- expect(viewTemplate({
- "name": "Test View",
- "tableId": "14f1c4e94d6a47b682ce89d35d4c78b0",
- "filters": [{
- "value": "Test",
- "condition": "EQUALS",
- "key": "Name"
- }, {
- "value": "Value",
- "condition": "MT",
- "key": "Yes",
- "conjunction": "OR"
- }]
- })).toMatchSnapshot()
+ expect(
+ viewTemplate({
+ name: "Test View",
+ tableId: "14f1c4e94d6a47b682ce89d35d4c78b0",
+ filters: [
+ {
+ value: "Test",
+ condition: "EQUALS",
+ key: "Name",
+ },
+ {
+ value: "Value",
+ condition: "MT",
+ key: "Yes",
+ conjunction: "OR",
+ },
+ ],
+ })
+ ).toMatchSnapshot()
})
})
describe("Calculate", () => {
it("creates a view with the calculation statistics schema", () => {
- expect(viewTemplate({
- "name": "Calculate View",
- "field": "myField",
- "calculation": "stats",
- "tableId": "14f1c4e94d6a47b682ce89d35d4c78b0",
- "filters": []
- })).toMatchSnapshot()
+ expect(
+ viewTemplate({
+ name: "Calculate View",
+ field: "myField",
+ calculation: "stats",
+ tableId: "14f1c4e94d6a47b682ce89d35d4c78b0",
+ filters: [],
+ })
+ ).toMatchSnapshot()
})
})
describe("Group By", () => {
it("creates a view emitting the group by field", () => {
- expect(viewTemplate({
- "name": "Test Scores Grouped By Age",
- "tableId": "14f1c4e94d6a47b682ce89d35d4c78b0",
- "groupBy": "age",
- "field": "score",
- "filters": [],
- })).toMatchSnapshot()
+ expect(
+ viewTemplate({
+ name: "Test Scores Grouped By Age",
+ tableId: "14f1c4e94d6a47b682ce89d35d4c78b0",
+ groupBy: "age",
+ field: "score",
+ filters: [],
+ })
+ ).toMatchSnapshot()
})
})
describe("Calculate and filter", () => {
it("creates a view with the calculation statistics and filter schema", () => {
- expect(viewTemplate({
- "name": "Calculate View",
- "field": "myField",
- "calculation": "stats",
- "tableId": "14f1c4e94d6a47b682ce89d35d4c78b0",
- "filters": [
- {
- "value": 17,
- "condition": "MT",
- "key": "age",
- }
- ]
- })).toMatchSnapshot()
+ expect(
+ viewTemplate({
+ name: "Calculate View",
+ field: "myField",
+ calculation: "stats",
+ tableId: "14f1c4e94d6a47b682ce89d35d4c78b0",
+ filters: [
+ {
+ value: 17,
+ condition: "MT",
+ key: "age",
+ },
+ ],
+ })
+ ).toMatchSnapshot()
})
})
-});
\ No newline at end of file
+})
diff --git a/packages/server/src/api/routes/public/tests/metrics.spec.js b/packages/server/src/api/routes/public/tests/metrics.spec.js
index 8e226ec958..8231596d59 100644
--- a/packages/server/src/api/routes/public/tests/metrics.spec.js
+++ b/packages/server/src/api/routes/public/tests/metrics.spec.js
@@ -25,10 +25,9 @@ describe("/metrics", () => {
it("endpoint should not be publicly exposed", async () => {
await request
- .get(`/api/public/v1/metrics`)
- .set(config.publicHeaders())
- .expect(403)
+ .get(`/api/public/v1/metrics`)
+ .set(config.publicHeaders())
+ .expect(403)
})
})
-
})
diff --git a/packages/server/src/api/routes/tests/analytics.spec.js b/packages/server/src/api/routes/tests/analytics.spec.js
index 5dfe2ce3e6..c69307656d 100644
--- a/packages/server/src/api/routes/tests/analytics.spec.js
+++ b/packages/server/src/api/routes/tests/analytics.spec.js
@@ -13,8 +13,8 @@ describe("/static", () => {
beforeAll(async () => {
app = await config.init()
})
-
- beforeEach(()=>{
+
+ beforeEach(() => {
jest.clearAllMocks()
})
@@ -22,7 +22,7 @@ describe("/static", () => {
it("should ping from builder", async () => {
await request
.post("/api/bbtel/ping")
- .send({source: "builder", timezone})
+ .send({ source: "builder", timezone })
.set(config.defaultHeaders())
.expect(200)
@@ -35,12 +35,15 @@ describe("/static", () => {
it("should ping from app preview", async () => {
await request
.post("/api/bbtel/ping")
- .send({source: "app", timezone})
+ .send({ source: "app", timezone })
.set(config.defaultHeaders())
.expect(200)
expect(events.serve.servedAppPreview).toBeCalledTimes(1)
- expect(events.serve.servedAppPreview).toBeCalledWith(config.getApp(), timezone)
+ expect(events.serve.servedAppPreview).toBeCalledWith(
+ config.getApp(),
+ timezone
+ )
expect(events.serve.servedApp).not.toBeCalled()
})
@@ -50,12 +53,16 @@ describe("/static", () => {
await request
.post("/api/bbtel/ping")
- .send({source: "app", timezone})
+ .send({ source: "app", timezone })
.set(headers)
.expect(200)
expect(events.serve.servedApp).toBeCalledTimes(1)
- expect(events.serve.servedApp).toBeCalledWith(config.getProdApp(), timezone, undefined)
+ expect(events.serve.servedApp).toBeCalledWith(
+ config.getProdApp(),
+ timezone,
+ undefined
+ )
expect(events.serve.servedAppPreview).not.toBeCalled()
})
@@ -65,12 +72,16 @@ describe("/static", () => {
await request
.post("/api/bbtel/ping")
- .send({source: "app", timezone, embedded: true})
+ .send({ source: "app", timezone, embedded: true })
.set(headers)
.expect(200)
expect(events.serve.servedApp).toBeCalledTimes(1)
- expect(events.serve.servedApp).toBeCalledWith(config.getProdApp(), timezone, true)
+ expect(events.serve.servedApp).toBeCalledWith(
+ config.getProdApp(),
+ timezone,
+ true
+ )
expect(events.serve.servedAppPreview).not.toBeCalled()
})
})
diff --git a/packages/server/src/api/routes/tests/apikeys.spec.js b/packages/server/src/api/routes/tests/apikeys.spec.js
index 4a52ea84b4..eb6933af7d 100644
--- a/packages/server/src/api/routes/tests/apikeys.spec.js
+++ b/packages/server/src/api/routes/tests/apikeys.spec.js
@@ -38,7 +38,7 @@ describe("/api/keys", () => {
const res = await request
.put(`/api/keys/TEST`)
.send({
- value: "test"
+ value: "test",
})
.set(config.defaultHeaders())
.expect("Content-Type", /json/)
@@ -56,4 +56,4 @@ describe("/api/keys", () => {
})
})
})
-})
\ No newline at end of file
+})
diff --git a/packages/server/src/api/routes/tests/auth.spec.js b/packages/server/src/api/routes/tests/auth.spec.js
index 9418d44046..5fbead99b7 100644
--- a/packages/server/src/api/routes/tests/auth.spec.js
+++ b/packages/server/src/api/routes/tests/auth.spec.js
@@ -21,4 +21,4 @@ describe("/authenticate", () => {
expect(res.body._id).toEqual(generateUserMetadataID(config.user._id))
})
})
-})
\ No newline at end of file
+})
diff --git a/packages/server/src/api/routes/tests/component.spec.js b/packages/server/src/api/routes/tests/component.spec.js
index 160a1ca160..c621afae0a 100644
--- a/packages/server/src/api/routes/tests/component.spec.js
+++ b/packages/server/src/api/routes/tests/component.spec.js
@@ -29,4 +29,4 @@ describe("/component", () => {
})
})
})
-})
\ No newline at end of file
+})
diff --git a/packages/server/src/api/routes/tests/dev.spec.js b/packages/server/src/api/routes/tests/dev.spec.js
index af1dc82a9d..73f506d17f 100644
--- a/packages/server/src/api/routes/tests/dev.spec.js
+++ b/packages/server/src/api/routes/tests/dev.spec.js
@@ -1,7 +1,6 @@
const setup = require("./utilities")
const { events } = require("@budibase/backend-core")
-
describe("/dev", () => {
let request = setup.getRequest()
let config = setup.getConfig()
@@ -32,9 +31,9 @@ describe("/dev", () => {
.expect("Content-Type", /json/)
.expect(200)
- expect(res.body.version).toBe('0.0.0+jest')
+ expect(res.body.version).toBe("0.0.0+jest")
expect(events.installation.versionChecked).toBeCalledTimes(1)
- expect(events.installation.versionChecked).toBeCalledWith('0.0.0+jest')
+ expect(events.installation.versionChecked).toBeCalledWith("0.0.0+jest")
})
})
-})
\ No newline at end of file
+})
diff --git a/packages/server/src/api/routes/tests/integration.spec.js b/packages/server/src/api/routes/tests/integration.spec.js
index dde780681b..798ddcd969 100644
--- a/packages/server/src/api/routes/tests/integration.spec.js
+++ b/packages/server/src/api/routes/tests/integration.spec.js
@@ -49,4 +49,4 @@ describe("/integrations", () => {
})
})
})
-})
\ No newline at end of file
+})
diff --git a/packages/server/src/api/routes/tests/layout.spec.js b/packages/server/src/api/routes/tests/layout.spec.js
index ebd6ab7278..c3a3010e32 100644
--- a/packages/server/src/api/routes/tests/layout.spec.js
+++ b/packages/server/src/api/routes/tests/layout.spec.js
@@ -56,4 +56,4 @@ describe("/layouts", () => {
})
})
})
-})
\ No newline at end of file
+})
diff --git a/packages/server/src/api/routes/tests/metadata.spec.js b/packages/server/src/api/routes/tests/metadata.spec.js
index bb28951ee3..d5563f417e 100644
--- a/packages/server/src/api/routes/tests/metadata.spec.js
+++ b/packages/server/src/api/routes/tests/metadata.spec.js
@@ -14,7 +14,10 @@ describe("/metadata", () => {
automation = await config.createAutomation()
})
- async function createMetadata(data, type = MetadataTypes.AUTOMATION_TEST_INPUT) {
+ async function createMetadata(
+ data,
+ type = MetadataTypes.AUTOMATION_TEST_INPUT
+ ) {
const res = await request
.post(`/api/metadata/${type}/${automation._id}`)
.send(data)
@@ -53,7 +56,9 @@ describe("/metadata", () => {
describe("destroy", () => {
it("should be able to delete some test inputs", async () => {
const res = await request
- .delete(`/api/metadata/${MetadataTypes.AUTOMATION_TEST_INPUT}/${automation._id}`)
+ .delete(
+ `/api/metadata/${MetadataTypes.AUTOMATION_TEST_INPUT}/${automation._id}`
+ )
.set(config.defaultHeaders())
.expect("Content-Type", /json/)
.expect(200)
diff --git a/packages/server/src/api/routes/tests/query.seq.spec.js b/packages/server/src/api/routes/tests/query.seq.spec.js
index d7481fd224..05ca5f7cbb 100644
--- a/packages/server/src/api/routes/tests/query.seq.spec.js
+++ b/packages/server/src/api/routes/tests/query.seq.spec.js
@@ -1,4 +1,4 @@
-const tk = require( "timekeeper")
+const tk = require("timekeeper")
tk.freeze(Date.now())
// Mock out postgres for this
@@ -14,7 +14,7 @@ jest.mock("@budibase/backend-core", () => {
db: {
...core.db,
isProdAppID: jest.fn(),
- }
+ },
}
})
const setup = require("./utilities")
@@ -30,8 +30,7 @@ describe("/queries", () => {
afterAll(setup.afterAll)
- const setupTest = async()=>{
-
+ const setupTest = async () => {
await config.init()
datasource = await config.createDatasource()
query = await config.createQuery()
@@ -52,7 +51,7 @@ describe("/queries", () => {
return { datasource, query }
}
- const createQuery = async (query) => {
+ const createQuery = async query => {
return request
.post(`/api/queries`)
.send(query)
@@ -76,7 +75,7 @@ describe("/queries", () => {
_id: res.body._id,
...query,
createdAt: new Date().toISOString(),
- updatedAt: new Date().toISOString()
+ updatedAt: new Date().toISOString(),
})
expect(events.query.created).toBeCalledTimes(1)
expect(events.query.updated).not.toBeCalled()
@@ -101,7 +100,7 @@ describe("/queries", () => {
_id: res.body._id,
...query,
createdAt: new Date().toISOString(),
- updatedAt: new Date().toISOString()
+ updatedAt: new Date().toISOString(),
})
expect(events.query.created).not.toBeCalled()
expect(events.query.updated).toBeCalledTimes(1)
@@ -109,7 +108,7 @@ describe("/queries", () => {
})
describe("fetch", () => {
- beforeEach(async() => {
+ beforeEach(async () => {
await setupTest()
})
@@ -190,7 +189,7 @@ describe("/queries", () => {
})
describe("destroy", () => {
- beforeEach(async() => {
+ beforeEach(async () => {
await setupTest()
})
@@ -237,8 +236,8 @@ describe("/queries", () => {
.expect(200)
// these responses come from the mock
expect(res.body.schemaFields).toEqual({
- "a": "string",
- "b": "number",
+ a: "string",
+ b: "number",
})
expect(res.body.rows.length).toEqual(1)
expect(events.query.previewed).toBeCalledTimes(1)
@@ -256,7 +255,7 @@ describe("/queries", () => {
})
describe("execute", () => {
- beforeEach(async() => {
+ beforeEach(async () => {
await setupTest()
})
@@ -302,9 +301,9 @@ describe("/queries", () => {
})
// these responses come from the mock
expect(res.body.schemaFields).toEqual({
- "opts": "json",
- "url": "string",
- "value": "string",
+ opts: "json",
+ url: "string",
+ value: "string",
})
expect(res.body.rows[0].url).toEqual("http://www.google.com?test=1")
})
@@ -316,9 +315,9 @@ describe("/queries", () => {
queryString: "test={{ variable3 }}",
})
expect(res.body.schemaFields).toEqual({
- "opts": "json",
- "url": "string",
- "value": "string"
+ opts: "json",
+ url: "string",
+ value: "string",
})
expect(res.body.rows[0].url).toContain("doctype%20html")
})
@@ -339,9 +338,9 @@ describe("/queries", () => {
queryString: "test={{ variable3 }}",
})
expect(res.body.schemaFields).toEqual({
- "fails": "number",
- "opts": "json",
- "url": "string"
+ fails: "number",
+ opts: "json",
+ url: "string",
})
expect(res.body.rows[0].fails).toEqual(1)
})
@@ -371,13 +370,19 @@ describe("/queries", () => {
})
describe("Current User Request Mapping", () => {
-
async function previewGet(datasource, fields, params) {
return config.previewQuery(request, config, datasource, fields, params)
}
async function previewPost(datasource, fields, params) {
- return config.previewQuery(request, config, datasource, fields, params, "create")
+ return config.previewQuery(
+ request,
+ config,
+ datasource,
+ fields,
+ params,
+ "create"
+ )
}
it("should parse global and query level header mappings", async () => {
@@ -385,120 +390,160 @@ describe("/queries", () => {
const datasource = await config.restDatasource({
defaultHeaders: {
- "test": "headerVal",
- "emailHdr": "{{[user].[email]}}"
- }
+ test: "headerVal",
+ emailHdr: "{{[user].[email]}}",
+ },
})
const res = await previewGet(datasource, {
path: "www.google.com",
queryString: "email={{[user].[email]}}",
headers: {
- queryHdr : "{{[user].[firstName]}}",
- secondHdr : "1234"
- }
+ queryHdr: "{{[user].[firstName]}}",
+ secondHdr: "1234",
+ },
})
const parsedRequest = JSON.parse(res.body.extra.raw)
expect(parsedRequest.opts.headers).toEqual({
- "test": "headerVal",
- "emailHdr": userDetails.email,
- "queryHdr": userDetails.firstName,
- "secondHdr" : "1234"
+ test: "headerVal",
+ emailHdr: userDetails.email,
+ queryHdr: userDetails.firstName,
+ secondHdr: "1234",
})
- expect(res.body.rows[0].url).toEqual("http://www.google.com?email=" + userDetails.email.replace("@", "%40"))
+ expect(res.body.rows[0].url).toEqual(
+ "http://www.google.com?email=" + userDetails.email.replace("@", "%40")
+ )
})
it("should bind the current user to query parameters", async () => {
const userDetails = config.getUserDetails()
-
+
const datasource = await config.restDatasource()
-
- const res = await previewGet(datasource, {
- path: "www.google.com",
- queryString: "test={{myEmail}}&testName={{myName}}&testParam={{testParam}}",
- }, {
- "myEmail" : "{{[user].[email]}}",
- "myName" : "{{[user].[firstName]}}",
- "testParam" : "1234"
- })
-
- expect(res.body.rows[0].url).toEqual("http://www.google.com?test=" + userDetails.email.replace("@", "%40") +
- "&testName=" + userDetails.firstName + "&testParam=1234")
+
+ const res = await previewGet(
+ datasource,
+ {
+ path: "www.google.com",
+ queryString:
+ "test={{myEmail}}&testName={{myName}}&testParam={{testParam}}",
+ },
+ {
+ myEmail: "{{[user].[email]}}",
+ myName: "{{[user].[firstName]}}",
+ testParam: "1234",
+ }
+ )
+
+ expect(res.body.rows[0].url).toEqual(
+ "http://www.google.com?test=" +
+ userDetails.email.replace("@", "%40") +
+ "&testName=" +
+ userDetails.firstName +
+ "&testParam=1234"
+ )
})
it("should bind the current user the request body - plain text", async () => {
const userDetails = config.getUserDetails()
const datasource = await config.restDatasource()
-
- const res = await previewPost(datasource, {
- path: "www.google.com",
- queryString: "testParam={{testParam}}",
- requestBody: "This is plain text and this is my email: {{[user].[email]}}. This is a test param: {{testParam}}",
- bodyType: "text"
- }, {
- "testParam" : "1234"
- })
+
+ const res = await previewPost(
+ datasource,
+ {
+ path: "www.google.com",
+ queryString: "testParam={{testParam}}",
+ requestBody:
+ "This is plain text and this is my email: {{[user].[email]}}. This is a test param: {{testParam}}",
+ bodyType: "text",
+ },
+ {
+ testParam: "1234",
+ }
+ )
const parsedRequest = JSON.parse(res.body.extra.raw)
- expect(parsedRequest.opts.body).toEqual(`This is plain text and this is my email: ${userDetails.email}. This is a test param: 1234`)
- expect(res.body.rows[0].url).toEqual("http://www.google.com?testParam=1234")
+ expect(parsedRequest.opts.body).toEqual(
+ `This is plain text and this is my email: ${userDetails.email}. This is a test param: 1234`
+ )
+ expect(res.body.rows[0].url).toEqual(
+ "http://www.google.com?testParam=1234"
+ )
})
it("should bind the current user the request body - json", async () => {
const userDetails = config.getUserDetails()
const datasource = await config.restDatasource()
-
- const res = await previewPost(datasource, {
- path: "www.google.com",
- queryString: "testParam={{testParam}}",
- requestBody: "{\"email\":\"{{[user].[email]}}\",\"queryCode\":{{testParam}},\"userRef\":\"{{userRef}}\"}",
- bodyType: "json"
- }, {
- "testParam" : "1234",
- "userRef" : "{{[user].[firstName]}}"
- })
+
+ const res = await previewPost(
+ datasource,
+ {
+ path: "www.google.com",
+ queryString: "testParam={{testParam}}",
+ requestBody:
+ '{"email":"{{[user].[email]}}","queryCode":{{testParam}},"userRef":"{{userRef}}"}',
+ bodyType: "json",
+ },
+ {
+ testParam: "1234",
+ userRef: "{{[user].[firstName]}}",
+ }
+ )
const parsedRequest = JSON.parse(res.body.extra.raw)
const test = `{"email":"${userDetails.email}","queryCode":1234,"userRef":"${userDetails.firstName}"}`
expect(parsedRequest.opts.body).toEqual(test)
- expect(res.body.rows[0].url).toEqual("http://www.google.com?testParam=1234")
+ expect(res.body.rows[0].url).toEqual(
+ "http://www.google.com?testParam=1234"
+ )
})
-
+
it("should bind the current user the request body - xml", async () => {
const userDetails = config.getUserDetails()
const datasource = await config.restDatasource()
-
- const res = await previewPost(datasource, {
- path: "www.google.com",
- queryString: "testParam={{testParam}}",
- requestBody: " {{[user].[email]}} {{testParam}}
" +
- "[{{userId}}] testing ",
- bodyType: "xml"
- }, {
- "testParam" : "1234",
- "userId" : "{{[user].[firstName]}}"
- })
+
+ const res = await previewPost(
+ datasource,
+ {
+ path: "www.google.com",
+ queryString: "testParam={{testParam}}",
+ requestBody:
+ " {{[user].[email]}} {{testParam}}
" +
+ "[{{userId}}] testing ",
+ bodyType: "xml",
+ },
+ {
+ testParam: "1234",
+ userId: "{{[user].[firstName]}}",
+ }
+ )
const parsedRequest = JSON.parse(res.body.extra.raw)
const test = ` ${userDetails.email} 1234
[${userDetails.firstName}] testing `
-
+
expect(parsedRequest.opts.body).toEqual(test)
- expect(res.body.rows[0].url).toEqual("http://www.google.com?testParam=1234")
+ expect(res.body.rows[0].url).toEqual(
+ "http://www.google.com?testParam=1234"
+ )
})
it("should bind the current user the request body - form-data", async () => {
const userDetails = config.getUserDetails()
const datasource = await config.restDatasource()
-
- const res = await previewPost(datasource, {
- path: "www.google.com",
- queryString: "testParam={{testParam}}",
- requestBody: "{\"email\":\"{{[user].[email]}}\",\"queryCode\":{{testParam}},\"userRef\":\"{{userRef}}\"}",
- bodyType: "form"
- }, {
- "testParam" : "1234",
- "userRef" : "{{[user].[firstName]}}"
- })
+
+ const res = await previewPost(
+ datasource,
+ {
+ path: "www.google.com",
+ queryString: "testParam={{testParam}}",
+ requestBody:
+ '{"email":"{{[user].[email]}}","queryCode":{{testParam}},"userRef":"{{userRef}}"}',
+ bodyType: "form",
+ },
+ {
+ testParam: "1234",
+ userRef: "{{[user].[firstName]}}",
+ }
+ )
const parsedRequest = JSON.parse(res.body.extra.raw)
@@ -511,28 +556,34 @@ describe("/queries", () => {
const userRef = parsedRequest.opts.body._streams[7]
expect(userRef).toEqual(userDetails.firstName)
- expect(res.body.rows[0].url).toEqual("http://www.google.com?testParam=1234")
+ expect(res.body.rows[0].url).toEqual(
+ "http://www.google.com?testParam=1234"
+ )
})
it("should bind the current user the request body - encoded", async () => {
const userDetails = config.getUserDetails()
const datasource = await config.restDatasource()
-
- const res = await previewPost(datasource, {
- path: "www.google.com",
- queryString: "testParam={{testParam}}",
- requestBody: "{\"email\":\"{{[user].[email]}}\",\"queryCode\":{{testParam}},\"userRef\":\"{{userRef}}\"}",
- bodyType: "encoded"
- }, {
- "testParam" : "1234",
- "userRef" : "{{[user].[firstName]}}"
- })
+
+ const res = await previewPost(
+ datasource,
+ {
+ path: "www.google.com",
+ queryString: "testParam={{testParam}}",
+ requestBody:
+ '{"email":"{{[user].[email]}}","queryCode":{{testParam}},"userRef":"{{userRef}}"}',
+ bodyType: "encoded",
+ },
+ {
+ testParam: "1234",
+ userRef: "{{[user].[firstName]}}",
+ }
+ )
const parsedRequest = JSON.parse(res.body.extra.raw)
-
+
expect(parsedRequest.opts.body.email).toEqual(userDetails.email)
expect(parsedRequest.opts.body.queryCode).toEqual("1234")
expect(parsedRequest.opts.body.userRef).toEqual(userDetails.firstName)
})
-
- });
+ })
})
diff --git a/packages/server/src/api/routes/tests/role.spec.js b/packages/server/src/api/routes/tests/role.spec.js
index d133a69d64..a653b573b2 100644
--- a/packages/server/src/api/routes/tests/role.spec.js
+++ b/packages/server/src/api/routes/tests/role.spec.js
@@ -170,7 +170,7 @@ describe("/roles", () => {
.get("/api/roles/accessible")
.set({
...config.defaultHeaders(),
- "x-budibase-role": "CUSTOM_ROLE"
+ "x-budibase-role": "CUSTOM_ROLE",
})
.expect(200)
expect(res.body.length).toBe(3)
diff --git a/packages/server/src/api/routes/tests/routing.spec.js b/packages/server/src/api/routes/tests/routing.spec.js
index 4076f4879c..5bdd4ee852 100644
--- a/packages/server/src/api/routes/tests/routing.spec.js
+++ b/packages/server/src/api/routes/tests/routing.spec.js
@@ -37,19 +37,23 @@ describe("/routing", () => {
await runInProd(async () => {
return request
.get(`/api/routing/client`)
- .set(await config.roleHeaders({
- roleId: BUILTIN_ROLE_IDS.BASIC,
- prodApp: false
- }))
+ .set(
+ await config.roleHeaders({
+ roleId: BUILTIN_ROLE_IDS.BASIC,
+ prodApp: false,
+ })
+ )
.expect(302)
})
})
it("returns the correct routing for basic user", async () => {
const res = await request
.get(`/api/routing/client`)
- .set(await config.roleHeaders({
- roleId: BUILTIN_ROLE_IDS.BASIC
- }))
+ .set(
+ await config.roleHeaders({
+ roleId: BUILTIN_ROLE_IDS.BASIC,
+ })
+ )
.expect("Content-Type", /json/)
.expect(200)
expect(res.body.routes).toBeDefined()
@@ -57,18 +61,20 @@ describe("/routing", () => {
subpaths: {
[route]: {
screenId: basic._id,
- roleId: basic.routing.roleId
- }
- }
+ roleId: basic.routing.roleId,
+ },
+ },
})
})
it("returns the correct routing for power user", async () => {
const res = await request
.get(`/api/routing/client`)
- .set(await config.roleHeaders({
- roleId: BUILTIN_ROLE_IDS.POWER
- }))
+ .set(
+ await config.roleHeaders({
+ roleId: BUILTIN_ROLE_IDS.POWER,
+ })
+ )
.expect("Content-Type", /json/)
.expect(200)
expect(res.body.routes).toBeDefined()
@@ -76,9 +82,9 @@ describe("/routing", () => {
subpaths: {
[route]: {
screenId: power._id,
- roleId: power.routing.roleId
- }
- }
+ roleId: power.routing.roleId,
+ },
+ },
})
})
})
@@ -87,10 +93,12 @@ describe("/routing", () => {
it("should fetch all routes for builder", async () => {
const res = await request
.get(`/api/routing`)
- .set(await config.roleHeaders({
- roleId: BUILTIN_ROLE_IDS.POWER,
- builder: true,
- }))
+ .set(
+ await config.roleHeaders({
+ roleId: BUILTIN_ROLE_IDS.POWER,
+ builder: true,
+ })
+ )
.expect(200)
.expect("Content-Type", /json/)
expect(res.body.routes).toBeDefined()
@@ -108,4 +116,4 @@ describe("/routing", () => {
})
})
})
-})
\ No newline at end of file
+})
diff --git a/packages/server/src/api/routes/tests/screen.spec.js b/packages/server/src/api/routes/tests/screen.spec.js
index a3748d6a79..481baac703 100644
--- a/packages/server/src/api/routes/tests/screen.spec.js
+++ b/packages/server/src/api/routes/tests/screen.spec.js
@@ -36,7 +36,7 @@ describe("/screens", () => {
})
describe("save", () => {
- const saveScreen = async (screen) => {
+ const saveScreen = async screen => {
const res = await request
.post(`/api/screens`)
.send(screen)
@@ -100,4 +100,4 @@ describe("/screens", () => {
})
})
})
-})
\ No newline at end of file
+})
diff --git a/packages/server/src/api/routes/tests/templates.spec.js b/packages/server/src/api/routes/tests/templates.spec.js
index 3cb22fd2d3..1406a75c59 100644
--- a/packages/server/src/api/routes/tests/templates.spec.js
+++ b/packages/server/src/api/routes/tests/templates.spec.js
@@ -21,4 +21,4 @@ describe("/templates", () => {
expect(Array.isArray(res.body)).toEqual(true)
})
})
-})
\ No newline at end of file
+})
diff --git a/packages/server/src/api/routes/tests/view.spec.js b/packages/server/src/api/routes/tests/view.spec.js
index e633279058..92ff097899 100644
--- a/packages/server/src/api/routes/tests/view.spec.js
+++ b/packages/server/src/api/routes/tests/view.spec.js
@@ -31,18 +31,18 @@ describe("/views", () => {
beforeAll(async () => {
await config.init()
})
-
- beforeEach(async() => {
+
+ beforeEach(async () => {
table = await config.createTable(priceTable())
})
- const saveView = async (view) => {
+ const saveView = async view => {
const viewToSave = {
name: "TestView",
field: "Price",
calculation: "stats",
tableId: table._id,
- ...view
+ ...view,
}
return request
.post(`/api/views`)
@@ -53,7 +53,6 @@ describe("/views", () => {
}
describe("create", () => {
-
it("returns a success message when the view is successfully created", async () => {
const res = await saveView()
expect(res.body.tableId).toBe(table._id)
@@ -81,11 +80,13 @@ describe("/views", () => {
const res = await saveView({
calculation: null,
- filters: [{
- value: "1",
- condition: "EQUALS",
- key: "price"
- }],
+ filters: [
+ {
+ value: "1",
+ condition: "EQUALS",
+ key: "price",
+ },
+ ],
})
expect(res.body.tableId).toBe(table._id)
@@ -199,18 +200,26 @@ describe("/views", () => {
})
it("updates a view filter", async () => {
- await saveView({ filters: [{
- value: "1",
- condition: "EQUALS",
- key: "price"
- }] })
+ await saveView({
+ filters: [
+ {
+ value: "1",
+ condition: "EQUALS",
+ key: "price",
+ },
+ ],
+ })
jest.clearAllMocks()
- await saveView({ filters: [{
- value: "2",
- condition: "EQUALS",
- key: "price"
- }] })
+ await saveView({
+ filters: [
+ {
+ value: "2",
+ condition: "EQUALS",
+ key: "price",
+ },
+ ],
+ })
expect(events.view.created).not.toBeCalled()
expect(events.view.updated).toBeCalledTimes(1)
@@ -223,11 +232,15 @@ describe("/views", () => {
})
it("deletes a view filter", async () => {
- await saveView({ filters: [{
- value: "1",
- condition: "EQUALS",
- key: "price"
- }] })
+ await saveView({
+ filters: [
+ {
+ value: "1",
+ condition: "EQUALS",
+ key: "price",
+ },
+ ],
+ })
jest.clearAllMocks()
await saveView({ filters: [] })
@@ -344,7 +357,6 @@ describe("/views", () => {
})
describe("exportView", () => {
-
beforeEach(() => {
jest.clearAllMocks()
})
@@ -362,14 +374,14 @@ describe("/views", () => {
.expect(200)
}
- const assertJsonExport = (res) => {
+ const assertJsonExport = res => {
const rows = JSON.parse(res.text)
expect(rows.length).toBe(1)
expect(rows[0].name).toBe("test-name")
expect(rows[0].description).toBe("ùúûü")
}
- const assertCSVExport = (res) => {
+ const assertCSVExport = res => {
expect(res.text).toBe(`"name","description"\n"test-name","ùúûü"`)
}
diff --git a/packages/server/src/automations/tests/bash.spec.js b/packages/server/src/automations/tests/bash.spec.js
index a8695c7460..d2f3bb8031 100644
--- a/packages/server/src/automations/tests/bash.spec.js
+++ b/packages/server/src/automations/tests/bash.spec.js
@@ -1,34 +1,33 @@
const setup = require("./utilities")
describe("test the bash action", () => {
- let config = setup.getConfig()
+ let config = setup.getConfig()
- beforeAll(async () => {
- await config.init()
- })
- afterAll(setup.afterAll)
+ beforeAll(async () => {
+ await config.init()
+ })
+ afterAll(setup.afterAll)
- it("should be able to execute a script", async () => {
+ it("should be able to execute a script", async () => {
+ let res = await setup.runStep(
+ "EXECUTE_BASH",
+ (inputs = {
+ code: "echo 'test'",
+ })
+ )
+ expect(res.stdout).toEqual("test\n")
+ expect(res.success).toEqual(true)
+ })
- let res = await setup.runStep("EXECUTE_BASH",
- inputs = {
- code: "echo 'test'"
- }
-
- )
- expect(res.stdout).toEqual("test\n")
- expect(res.success).toEqual(true)
- })
-
- it("should handle a null value", async () => {
-
- let res = await setup.runStep("EXECUTE_BASH",
- inputs = {
- code: null
- }
-
-
- )
- expect(res.stdout).toEqual("Budibase bash automation failed: Invalid inputs")
- })
+ it("should handle a null value", async () => {
+ let res = await setup.runStep(
+ "EXECUTE_BASH",
+ (inputs = {
+ code: null,
+ })
+ )
+ expect(res.stdout).toEqual(
+ "Budibase bash automation failed: Invalid inputs"
+ )
+ })
})
diff --git a/packages/server/src/automations/tests/delay.spec.js b/packages/server/src/automations/tests/delay.spec.js
index ad67c74606..5f6e0fd164 100644
--- a/packages/server/src/automations/tests/delay.spec.js
+++ b/packages/server/src/automations/tests/delay.spec.js
@@ -1,7 +1,7 @@
const setup = require("./utilities")
// need real Date for this test
-const tk = require('timekeeper');
+const tk = require("timekeeper")
tk.reset()
describe("test the delay logic", () => {
diff --git a/packages/server/src/automations/tests/discord.spec.js b/packages/server/src/automations/tests/discord.spec.js
index d91c46094a..ccae42d073 100644
--- a/packages/server/src/automations/tests/discord.spec.js
+++ b/packages/server/src/automations/tests/discord.spec.js
@@ -4,24 +4,23 @@ const fetch = require("node-fetch")
jest.mock("node-fetch")
describe("test the outgoing webhook action", () => {
- let inputs
- let config = setup.getConfig()
+ let inputs
+ let config = setup.getConfig()
- beforeAll(async () => {
- await config.init()
- inputs = {
- username: "joe_bloggs",
- url: "http://www.test.com",
- }
- })
+ beforeAll(async () => {
+ await config.init()
+ inputs = {
+ username: "joe_bloggs",
+ url: "http://www.test.com",
+ }
+ })
- afterAll(setup.afterAll)
-
- it("should be able to run the action", async () => {
- const res = await setup.runStep(setup.actions.discord.stepId, inputs)
- expect(res.response.url).toEqual("http://www.test.com")
- expect(res.response.method).toEqual("post")
- expect(res.success).toEqual(true)
- })
+ afterAll(setup.afterAll)
+ it("should be able to run the action", async () => {
+ const res = await setup.runStep(setup.actions.discord.stepId, inputs)
+ expect(res.response.url).toEqual("http://www.test.com")
+ expect(res.response.method).toEqual("post")
+ expect(res.success).toEqual(true)
+ })
})
diff --git a/packages/server/src/automations/tests/executeQuery.spec.js b/packages/server/src/automations/tests/executeQuery.spec.js
index ae2ca1dfd8..3b747f2ba3 100644
--- a/packages/server/src/automations/tests/executeQuery.spec.js
+++ b/packages/server/src/automations/tests/executeQuery.spec.js
@@ -1,48 +1,47 @@
const setup = require("./utilities")
describe("test the execute query action", () => {
- let config = setup.getConfig()
+ let config = setup.getConfig()
- beforeAll(async () => {
- await config.init()
+ beforeAll(async () => {
+ await config.init()
- await config.createDatasource()
- query = await config.createQuery()
+ await config.createDatasource()
+ query = await config.createQuery()
+ })
- })
+ afterAll(setup.afterAll)
- afterAll(setup.afterAll)
-
- it("should be able to execute a query", async () => {
- let res = await setup.runStep(setup.actions.EXECUTE_QUERY.stepId,
- inputs = {
- query: { queryId: query._id }
- }
- )
- expect(res.response).toEqual([{ a: 'string', b: 1 }])
- expect(res.success).toEqual(true)
- })
-
- it("should handle a null query value", async () => {
- let res = await setup.runStep(setup.actions.EXECUTE_QUERY.stepId,
- inputs = {
- query: null
- }
- )
- expect(res.response.message).toEqual("Invalid inputs")
- expect(res.success).toEqual(false)
- })
-
-
- it("should handle an error executing a query", async () => {
- let res = await setup.runStep(setup.actions.EXECUTE_QUERY.stepId,
- inputs = {
- query: { queryId: "wrong_id" }
- }
- )
- expect(res.response).toEqual('Error: missing')
- expect(res.success).toEqual(false)
- })
+ it("should be able to execute a query", async () => {
+ let res = await setup.runStep(
+ setup.actions.EXECUTE_QUERY.stepId,
+ (inputs = {
+ query: { queryId: query._id },
+ })
+ )
+ expect(res.response).toEqual([{ a: "string", b: 1 }])
+ expect(res.success).toEqual(true)
+ })
+ it("should handle a null query value", async () => {
+ let res = await setup.runStep(
+ setup.actions.EXECUTE_QUERY.stepId,
+ (inputs = {
+ query: null,
+ })
+ )
+ expect(res.response.message).toEqual("Invalid inputs")
+ expect(res.success).toEqual(false)
+ })
+ it("should handle an error executing a query", async () => {
+ let res = await setup.runStep(
+ setup.actions.EXECUTE_QUERY.stepId,
+ (inputs = {
+ query: { queryId: "wrong_id" },
+ })
+ )
+ expect(res.response).toEqual("Error: missing")
+ expect(res.success).toEqual(false)
+ })
})
diff --git a/packages/server/src/automations/tests/executeScript.spec.js b/packages/server/src/automations/tests/executeScript.spec.js
index b9aedb8e31..5aac8400cd 100644
--- a/packages/server/src/automations/tests/executeScript.spec.js
+++ b/packages/server/src/automations/tests/executeScript.spec.js
@@ -1,48 +1,43 @@
const setup = require("./utilities")
describe("test the execute script action", () => {
- let config = setup.getConfig()
+ let config = setup.getConfig()
- beforeAll(async () => {
- await config.init()
- })
- afterAll(setup.afterAll)
+ beforeAll(async () => {
+ await config.init()
+ })
+ afterAll(setup.afterAll)
- it("should be able to execute a script", async () => {
+ it("should be able to execute a script", async () => {
+ let res = await setup.runStep(
+ setup.actions.EXECUTE_SCRIPT.stepId,
+ (inputs = {
+ code: "return 1 + 1",
+ })
+ )
+ expect(res.value).toEqual(2)
+ expect(res.success).toEqual(true)
+ })
- let res = await setup.runStep(setup.actions.EXECUTE_SCRIPT.stepId,
- inputs = {
- code: "return 1 + 1"
- }
-
- )
- expect(res.value).toEqual(2)
- expect(res.success).toEqual(true)
- })
-
- it("should handle a null value", async () => {
-
- let res = await setup.runStep(setup.actions.EXECUTE_SCRIPT.stepId,
- inputs = {
- code: null
- }
-
-
- )
- expect(res.response.message).toEqual("Invalid inputs")
- expect(res.success).toEqual(false)
- })
-
- it("should be able to handle an error gracefully", async () => {
-
- let res = await setup.runStep(setup.actions.EXECUTE_SCRIPT.stepId,
- inputs = {
- code: "return something.map(x => x.name)"
- }
-
- )
- expect(res.response).toEqual("ReferenceError: something is not defined")
- expect(res.success).toEqual(false)
- })
+ it("should handle a null value", async () => {
+ let res = await setup.runStep(
+ setup.actions.EXECUTE_SCRIPT.stepId,
+ (inputs = {
+ code: null,
+ })
+ )
+ expect(res.response.message).toEqual("Invalid inputs")
+ expect(res.success).toEqual(false)
+ })
+ it("should be able to handle an error gracefully", async () => {
+ let res = await setup.runStep(
+ setup.actions.EXECUTE_SCRIPT.stepId,
+ (inputs = {
+ code: "return something.map(x => x.name)",
+ })
+ )
+ expect(res.response).toEqual("ReferenceError: something is not defined")
+ expect(res.success).toEqual(false)
+ })
})
diff --git a/packages/server/src/automations/tests/outgoingWebhook.spec.js b/packages/server/src/automations/tests/outgoingWebhook.spec.js
index c31ed850e7..4bc51d0989 100644
--- a/packages/server/src/automations/tests/outgoingWebhook.spec.js
+++ b/packages/server/src/automations/tests/outgoingWebhook.spec.js
@@ -21,7 +21,10 @@ describe("test the outgoing webhook action", () => {
afterAll(setup.afterAll)
it("should be able to run the action", async () => {
- const res = await setup.runStep(setup.actions.OUTGOING_WEBHOOK.stepId, inputs)
+ const res = await setup.runStep(
+ setup.actions.OUTGOING_WEBHOOK.stepId,
+ inputs
+ )
expect(res.success).toEqual(true)
expect(res.response.url).toEqual("http://www.test.com")
expect(res.response.method).toEqual("POST")
@@ -31,9 +34,8 @@ describe("test the outgoing webhook action", () => {
it("should return an error if something goes wrong in fetch", async () => {
const res = await setup.runStep(setup.actions.OUTGOING_WEBHOOK.stepId, {
requestMethod: "GET",
- url: "www.invalid.com"
+ url: "www.invalid.com",
})
expect(res.success).toEqual(false)
})
-
})
diff --git a/packages/server/src/automations/tests/serverLog.spec.js b/packages/server/src/automations/tests/serverLog.spec.js
index 8b5ce2e64f..8869c07a4b 100644
--- a/packages/server/src/automations/tests/serverLog.spec.js
+++ b/packages/server/src/automations/tests/serverLog.spec.js
@@ -1,22 +1,19 @@
const setup = require("./utilities")
describe("test the server log action", () => {
- let config = setup.getConfig()
+ let config = setup.getConfig()
- beforeAll(async () => {
- await config.init()
- inputs = {
- text: "log message",
- }
- })
- afterAll(setup.afterAll)
+ beforeAll(async () => {
+ await config.init()
+ inputs = {
+ text: "log message",
+ }
+ })
+ afterAll(setup.afterAll)
- it("should be able to log the text", async () => {
-
- let res = await setup.runStep(setup.actions.SERVER_LOG.stepId,
- inputs
- )
- expect(res.message).toEqual(`App ${config.getAppId()} - ${inputs.text}`)
- expect(res.success).toEqual(true)
- })
+ it("should be able to log the text", async () => {
+ let res = await setup.runStep(setup.actions.SERVER_LOG.stepId, inputs)
+ expect(res.message).toEqual(`App ${config.getAppId()} - ${inputs.text}`)
+ expect(res.success).toEqual(true)
+ })
})
diff --git a/packages/server/src/db/tests/linkController.spec.js b/packages/server/src/db/tests/linkController.spec.js
index 5caf35f61a..313cfee837 100644
--- a/packages/server/src/db/tests/linkController.spec.js
+++ b/packages/server/src/db/tests/linkController.spec.js
@@ -1,5 +1,9 @@
const TestConfig = require("../../tests/utilities/TestConfiguration")
-const { basicRow, basicLinkedRow, basicTable } = require("../../tests/utilities/structures")
+const {
+ basicRow,
+ basicLinkedRow,
+ basicTable,
+} = require("../../tests/utilities/structures")
const LinkController = require("../linkedRows/LinkController").default
const { context } = require("@budibase/backend-core")
const { RelationshipType } = require("../../constants")
@@ -16,7 +20,10 @@ describe("test the link controller", () => {
beforeEach(async () => {
const { _id } = await config.createTable()
- table2 = await config.createLinkedTable(RelationshipType.MANY_TO_MANY, ["link", "link2"])
+ table2 = await config.createLinkedTable(RelationshipType.MANY_TO_MANY, [
+ "link",
+ "link2",
+ ])
// update table after creating link
table1 = await config.getTable(_id)
})
@@ -41,15 +48,23 @@ describe("test the link controller", () => {
async function createLinkedRow(linkField = "link", t1 = table1, t2 = table2) {
const row = await config.createRow(basicRow(t2._id))
- const { _id } = await config.createRow(basicLinkedRow(t1._id, row._id, linkField))
+ const { _id } = await config.createRow(
+ basicLinkedRow(t1._id, row._id, linkField)
+ )
return config.getRow(t1._id, _id)
}
it("should be able to confirm if two table schemas are equal", async () => {
const controller = await createLinkController(table1)
- let equal = controller.areLinkSchemasEqual(table2.schema.link, table2.schema.link)
+ let equal = controller.areLinkSchemasEqual(
+ table2.schema.link,
+ table2.schema.link
+ )
expect(equal).toEqual(true)
- equal = controller.areLinkSchemasEqual(table1.schema.link, table2.schema.link)
+ equal = controller.areLinkSchemasEqual(
+ table1.schema.link,
+ table2.schema.link
+ )
expect(equal).toEqual(false)
})
@@ -57,17 +72,42 @@ describe("test the link controller", () => {
const controller = await createLinkController(table1)
// empty case
let output = controller.handleRelationshipType({}, {})
- expect(output.linkedField.relationshipType).toEqual(RelationshipType.MANY_TO_MANY)
- expect(output.linkerField.relationshipType).toEqual(RelationshipType.MANY_TO_MANY)
- output = controller.handleRelationshipType({ relationshipType: RelationshipType.MANY_TO_MANY }, {})
- expect(output.linkedField.relationshipType).toEqual(RelationshipType.MANY_TO_MANY)
- expect(output.linkerField.relationshipType).toEqual(RelationshipType.MANY_TO_MANY)
- output = controller.handleRelationshipType({ relationshipType: RelationshipType.MANY_TO_ONE }, {})
- expect(output.linkedField.relationshipType).toEqual(RelationshipType.ONE_TO_MANY)
- expect(output.linkerField.relationshipType).toEqual(RelationshipType.MANY_TO_ONE)
- output = controller.handleRelationshipType({ relationshipType: RelationshipType.ONE_TO_MANY }, {})
- expect(output.linkedField.relationshipType).toEqual(RelationshipType.MANY_TO_ONE)
- expect(output.linkerField.relationshipType).toEqual(RelationshipType.ONE_TO_MANY)
+ expect(output.linkedField.relationshipType).toEqual(
+ RelationshipType.MANY_TO_MANY
+ )
+ expect(output.linkerField.relationshipType).toEqual(
+ RelationshipType.MANY_TO_MANY
+ )
+ output = controller.handleRelationshipType(
+ { relationshipType: RelationshipType.MANY_TO_MANY },
+ {}
+ )
+ expect(output.linkedField.relationshipType).toEqual(
+ RelationshipType.MANY_TO_MANY
+ )
+ expect(output.linkerField.relationshipType).toEqual(
+ RelationshipType.MANY_TO_MANY
+ )
+ output = controller.handleRelationshipType(
+ { relationshipType: RelationshipType.MANY_TO_ONE },
+ {}
+ )
+ expect(output.linkedField.relationshipType).toEqual(
+ RelationshipType.ONE_TO_MANY
+ )
+ expect(output.linkerField.relationshipType).toEqual(
+ RelationshipType.MANY_TO_ONE
+ )
+ output = controller.handleRelationshipType(
+ { relationshipType: RelationshipType.ONE_TO_MANY },
+ {}
+ )
+ expect(output.linkedField.relationshipType).toEqual(
+ RelationshipType.MANY_TO_ONE
+ )
+ expect(output.linkerField.relationshipType).toEqual(
+ RelationshipType.ONE_TO_MANY
+ )
})
it("should be able to delete a row", async () => {
@@ -100,7 +140,7 @@ describe("test the link controller", () => {
it("should throw an error when validating a table which is invalid", async () => {
const controller = await createLinkController(table1)
const copyTable = {
- ...table1
+ ...table1,
}
copyTable.schema.otherTableLink = {
type: "link",
@@ -114,7 +154,9 @@ describe("test the link controller", () => {
error = err
}
expect(error).toBeDefined()
- expect(error.message).toEqual("Cannot re-use the linked column name for a linked table.")
+ expect(error.message).toEqual(
+ "Cannot re-use the linked column name for a linked table."
+ )
})
it("should be able to remove a link when saving/updating the row", async () => {
@@ -183,7 +225,10 @@ describe("test the link controller", () => {
it("shouldn't allow one to many having many relationships against it", async () => {
const firstTable = await config.createTable()
- const { _id } = await config.createLinkedTable(RelationshipType.MANY_TO_ONE, ["link"])
+ const { _id } = await config.createLinkedTable(
+ RelationshipType.MANY_TO_ONE,
+ ["link"]
+ )
const linkTable = await config.getTable(_id)
// an initial row to link around
const row = await createLinkedRow("link", linkTable, firstTable)
diff --git a/packages/server/src/db/tests/linkTests.spec.js b/packages/server/src/db/tests/linkTests.spec.js
index 19a0eb88d3..7b3fedb5a9 100644
--- a/packages/server/src/db/tests/linkTests.spec.js
+++ b/packages/server/src/db/tests/linkTests.spec.js
@@ -45,7 +45,9 @@ describe("test link functionality", () => {
})
it("should get the field from the link", () => {
- expect(linkUtils.getRelatedTableForField(link, "otherLink")).toBe("tableID")
+ expect(linkUtils.getRelatedTableForField(link, "otherLink")).toBe(
+ "tableID"
+ )
})
})
@@ -62,4 +64,4 @@ describe("test link functionality", () => {
})
})
})
-})
\ No newline at end of file
+})
diff --git a/packages/server/src/middleware/tests/resourceId.spec.js b/packages/server/src/middleware/tests/resourceId.spec.js
index 56d89cfede..759aa46f00 100644
--- a/packages/server/src/middleware/tests/resourceId.spec.js
+++ b/packages/server/src/middleware/tests/resourceId.spec.js
@@ -3,7 +3,7 @@ const {
paramSubResource,
bodyResource,
bodySubResource,
- ResourceIdGetter
+ ResourceIdGetter,
} = require("../resourceId")
class TestConfiguration {
@@ -41,7 +41,7 @@ describe("resourceId middleware", () => {
it("generates a resourceId middleware for context query parameters", () => {
const config = new TestConfiguration(paramResource("main"))
config.setParams({
- main: "test"
+ main: "test",
})
config.executeMiddleware()
@@ -53,7 +53,7 @@ describe("resourceId middleware", () => {
const config = new TestConfiguration(paramSubResource("main", "sub"))
config.setParams({
main: "main",
- sub: "test"
+ sub: "test",
})
config.executeMiddleware()
@@ -65,7 +65,7 @@ describe("resourceId middleware", () => {
it("generates a resourceId middleware for context request body", () => {
const config = new TestConfiguration(bodyResource("main"))
config.setBody({
- main: "test"
+ main: "test",
})
config.executeMiddleware()
@@ -77,7 +77,7 @@ describe("resourceId middleware", () => {
const config = new TestConfiguration(bodySubResource("main", "sub"))
config.setBody({
main: "main",
- sub: "test"
+ sub: "test",
})
config.executeMiddleware()
@@ -94,7 +94,7 @@ describe("resourceId middleware", () => {
let config = new TestConfiguration(middleware)
config.setBody({
custom: "test",
- customSub: "subtest"
+ customSub: "subtest",
})
config.executeMiddleware()
@@ -102,4 +102,4 @@ describe("resourceId middleware", () => {
expect(config.ctx.resourceId).toEqual("test")
expect(config.ctx.subResourceId).toEqual("subtest")
})
-})
\ No newline at end of file
+})
diff --git a/packages/server/src/middleware/tests/selfhost.spec.js b/packages/server/src/middleware/tests/selfhost.spec.js
index 70ed981ac3..03372e9783 100644
--- a/packages/server/src/middleware/tests/selfhost.spec.js
+++ b/packages/server/src/middleware/tests/selfhost.spec.js
@@ -10,7 +10,7 @@ class TestConfiguration {
this.ctx = {
next: this.next,
- throw: this.throw
+ throw: this.throw,
}
}
@@ -35,7 +35,7 @@ describe("Self host middleware", () => {
})
it("calls next() when SELF_HOSTED env var is set", async () => {
- env.SELF_HOSTED = 1
+ env.SELF_HOSTED = 1
await config.executeMiddleware()
expect(config.next).toHaveBeenCalled()
diff --git a/packages/server/src/migrations/functions/tests/appUrls.spec.js b/packages/server/src/migrations/functions/tests/appUrls.spec.js
index f60dff855c..7a2f324552 100644
--- a/packages/server/src/migrations/functions/tests/appUrls.spec.js
+++ b/packages/server/src/migrations/functions/tests/appUrls.spec.js
@@ -10,7 +10,7 @@ describe("run", () => {
await config.init()
})
- afterAll(config.end)
+ afterAll(config.end)
it("runs successfully", async () => {
const app = await config.createApp("testApp")
diff --git a/packages/server/src/migrations/functions/tests/userEmailViewCasing.spec.js b/packages/server/src/migrations/functions/tests/userEmailViewCasing.spec.js
index 15ddcfd1ef..f0da25893c 100644
--- a/packages/server/src/migrations/functions/tests/userEmailViewCasing.spec.js
+++ b/packages/server/src/migrations/functions/tests/userEmailViewCasing.spec.js
@@ -4,8 +4,8 @@ jest.mock("@budibase/backend-core", () => {
...core,
db: {
...core.db,
- createNewUserEmailView: jest.fn()
- }
+ createNewUserEmailView: jest.fn(),
+ },
}
})
const { context, db: dbCore } = require("@budibase/backend-core")
@@ -16,19 +16,19 @@ const TestConfig = require("../../../tests/utilities/TestConfiguration")
const migration = require("../userEmailViewCasing")
describe("run", () => {
- let config = new TestConfig(false)
+ let config = new TestConfig(false)
- beforeAll(async () => {
- await config.init()
- })
-
- afterAll(config.end)
-
- it("runs successfully", async () => {
- await config.doInTenant(async () => {
- const globalDb = context.getGlobalDB()
- await migration.run(globalDb)
- expect(dbCore.createNewUserEmailView).toHaveBeenCalledTimes(1)
- })
+ beforeAll(async () => {
+ await config.init()
+ })
+
+ afterAll(config.end)
+
+ it("runs successfully", async () => {
+ await config.doInTenant(async () => {
+ const globalDb = context.getGlobalDB()
+ await migration.run(globalDb)
+ expect(dbCore.createNewUserEmailView).toHaveBeenCalledTimes(1)
})
+ })
})
diff --git a/packages/string-templates/test/basic.spec.js b/packages/string-templates/test/basic.spec.js
index 3346a81ddd..a5054bf489 100644
--- a/packages/string-templates/test/basic.spec.js
+++ b/packages/string-templates/test/basic.spec.js
@@ -86,11 +86,11 @@ describe("Test that the object processing works correctly", () => {
})
it("check objects get converted to string JSON automatically", async () => {
- const row = {a: 1}
+ const row = { a: 1 }
const output = await processString("{{ trigger.row }}", {
trigger: {
row,
- }
+ },
})
expect(JSON.parse(output)).toEqual(row)
})
@@ -108,9 +108,9 @@ describe("Test that the object processing works correctly", () => {
describe("check returning objects", () => {
it("should handle an array of objects", async () => {
- const json = [{a: 1},{a: 2}]
+ const json = [{ a: 1 }, { a: 2 }]
const output = await processString("{{ testing }}", {
- testing: json
+ testing: json,
})
expect(output).toEqual(JSON.stringify(json))
})
@@ -164,9 +164,12 @@ describe("check manifest", () => {
describe("check full stops that are safe", () => {
it("should allow using an escaped full stop", async () => {
const data = {
- "c53a4a604fa754d33baaafd5bca4d3658-YXuUBqt5vI": { "persons.firstname": "1" }
+ "c53a4a604fa754d33baaafd5bca4d3658-YXuUBqt5vI": {
+ "persons.firstname": "1",
+ },
}
- const template = "{{ [c53a4a604fa754d33baaafd5bca4d3658-YXuUBqt5vI].[persons.firstname] }}"
+ const template =
+ "{{ [c53a4a604fa754d33baaafd5bca4d3658-YXuUBqt5vI].[persons.firstname] }}"
const output = await processString(template, data)
expect(output).toEqual("1")
})
@@ -195,7 +198,9 @@ describe("check that disabling escaping function works", () => {
})
it("should work for two statements", () => {
- expect(disableEscaping("{{ name }} welcome to {{ platform }}")).toEqual("{{{ name }}} welcome to {{{ platform }}}")
+ expect(disableEscaping("{{ name }} welcome to {{ platform }}")).toEqual(
+ "{{{ name }}} welcome to {{{ platform }}}"
+ )
})
it("shouldn't convert triple braces", () => {
@@ -203,11 +208,15 @@ describe("check that disabling escaping function works", () => {
})
it("should work with a combination", () => {
- expect(disableEscaping("{{ name }} welcome to {{{ platform }}}")).toEqual("{{{ name }}} welcome to {{{ platform }}}")
+ expect(disableEscaping("{{ name }} welcome to {{{ platform }}}")).toEqual(
+ "{{{ name }}} welcome to {{{ platform }}}"
+ )
})
it("should work with multiple escaped", () => {
- expect(disableEscaping("{{ name }} welcome to {{ name }}")).toEqual("{{{ name }}} welcome to {{{ name }}}")
+ expect(disableEscaping("{{ name }} welcome to {{ name }}")).toEqual(
+ "{{{ name }}} welcome to {{{ name }}}"
+ )
})
})
@@ -217,13 +226,20 @@ describe("check find hbs blocks function", () => {
})
it("should find two", () => {
- expect(findHBSBlocks("{{ hello }} there {{{ name }}}")).toEqual(["{{ hello }}", "{{{ name }}}"])
+ expect(findHBSBlocks("{{ hello }} there {{{ name }}}")).toEqual([
+ "{{ hello }}",
+ "{{{ name }}}",
+ ])
})
})
describe("should leave HBS blocks if not found using option", () => {
it("should replace one, leave one", async () => {
- const output = await processString("{{ a }}, {{ b }}", { b: 1 }, { onlyFound: true })
+ const output = await processString(
+ "{{ a }}, {{ b }}",
+ { b: 1 },
+ { onlyFound: true }
+ )
expect(output).toBe("{{ a }}, 1")
})
})
diff --git a/packages/string-templates/test/escapes.spec.js b/packages/string-templates/test/escapes.spec.js
index a14e78d2f2..d27ca64240 100644
--- a/packages/string-templates/test/escapes.spec.js
+++ b/packages/string-templates/test/escapes.spec.js
@@ -68,11 +68,11 @@ describe("attempt some complex problems", () => {
describe("check behaviour with newlines", () => {
const context = {
binding: `Hello
- there`
+ there`,
}
it("should escape new line to \\n with double brace", async () => {
const hbs = JSON.stringify({
- body: "{{ binding }}"
+ body: "{{ binding }}",
})
const output = await processString(hbs, context, { escapeNewlines: true })
expect(JSON.parse(output).body).toBe(context.binding)
@@ -80,7 +80,7 @@ describe("check behaviour with newlines", () => {
it("should work the same with triple brace", async () => {
const hbs = JSON.stringify({
- body: "{{{ binding }}}"
+ body: "{{{ binding }}}",
})
const output = await processString(hbs, context, { escapeNewlines: true })
expect(JSON.parse(output).body).toBe(context.binding)
@@ -88,9 +88,12 @@ describe("check behaviour with newlines", () => {
it("should still work with helpers disabled", async () => {
const hbs = JSON.stringify({
- body: "{{ binding }}"
+ body: "{{ binding }}",
+ })
+ const output = await processString(hbs, context, {
+ escapeNewlines: true,
+ noHelpers: true,
})
- const output = await processString(hbs, context, { escapeNewlines: true, noHelpers: true })
expect(JSON.parse(output).body).toBe(context.binding)
})
})
diff --git a/packages/string-templates/test/hbsToJs.spec.js b/packages/string-templates/test/hbsToJs.spec.js
index 63bd80db81..8a74cae526 100644
--- a/packages/string-templates/test/hbsToJs.spec.js
+++ b/packages/string-templates/test/hbsToJs.spec.js
@@ -1,6 +1,4 @@
-const {
- convertToJS
-} = require("../src/index.cjs")
+const { convertToJS } = require("../src/index.cjs")
function checkLines(response, lines) {
const toCheck = response.split("\n")
@@ -18,25 +16,19 @@ describe("Test that the string processing works correctly", () => {
it("basic example with square brackets", () => {
const response = convertToJS("{{ [query] }}")
- checkLines(response, [
- "const var1 = $(\"[query]\");",
- "return `${var1}`;",
- ])
+ checkLines(response, ['const var1 = $("[query]");', "return `${var1}`;"])
})
it("handle properties", () => {
const response = convertToJS("{{ [query].id }}")
- checkLines(response, [
- "const var1 = $(\"[query].id\");",
- "return `${var1}`;",
- ])
+ checkLines(response, ['const var1 = $("[query].id");', "return `${var1}`;"])
})
it("should convert some basic HBS strings", () => {
const response = convertToJS("Hello {{ name }}, welcome to {{ company }}!")
checkLines(response, [
- "const var1 = $(\"name\");",
- "const var2 = $(\"company\");",
+ 'const var1 = $("name");',
+ 'const var2 = $("company");',
"return `Hello ${var1}, welcome to ${var2}`;",
])
})
@@ -44,7 +36,7 @@ describe("Test that the string processing works correctly", () => {
it("should handle many square brackets in helpers", () => {
const response = convertToJS("Hello {{ avg [user].[_id] [user].[_rev] }}")
checkLines(response, [
- "const var1 = helpers.avg($(\"[user].[_id]\"), $(\"[user].[_rev]\"));",
+ 'const var1 = helpers.avg($("[user].[_id]"), $("[user].[_rev]"));',
"return `Hello ${var1}`;",
])
})
@@ -61,7 +53,7 @@ describe("Test that the string processing works correctly", () => {
const response = convertToJS("{{equalsLength '[1,2,3]' 3}}")
checkLines(response, [
"const var1 = helpers.equalsLength('[1,2,3]', 3);",
- "return `${var1}`;"
+ "return `${var1}`;",
])
})
@@ -84,23 +76,27 @@ describe("Test that the string processing works correctly", () => {
it("should handle a helper block", () => {
const response = convertToJS("This is the average: {{ avg array }}")
checkLines(response, [
- "const var1 = helpers.avg($(\"array\"));",
+ 'const var1 = helpers.avg($("array"));',
"return `This is the average: ${var1}`;",
])
})
it("should handle multi-variable helper", () => {
- const response = convertToJS("This is the average: {{ join ( avg val1 val2 val3 ) }}")
+ const response = convertToJS(
+ "This is the average: {{ join ( avg val1 val2 val3 ) }}"
+ )
checkLines(response, [
- "const var1 = helpers.join(helpers.avg($(\"val1\"), $(\"val2\"), $(\"val3\")));",
+ 'const var1 = helpers.join(helpers.avg($("val1"), $("val2"), $("val3")));',
"return `This is the average: ${var1}`;",
])
})
it("should handle a complex statement", () => {
- const response = convertToJS("This is the average: {{ join ( avg val1 val2 val3 ) val4 }}")
+ const response = convertToJS(
+ "This is the average: {{ join ( avg val1 val2 val3 ) val4 }}"
+ )
checkLines(response, [
- "const var1 = helpers.join(helpers.avg($(\"val1\"), $(\"val2\"), $(\"val3\")), $(\"val4\"));",
+ 'const var1 = helpers.join(helpers.avg($("val1"), $("val2"), $("val3")), $("val4"));',
"return `This is the average: ${var1}`;",
])
})
@@ -108,7 +104,7 @@ describe("Test that the string processing works correctly", () => {
it("should handle square brackets", () => {
const response = convertToJS("This is: {{ [val thing] }}")
checkLines(response, [
- "const var1 = $(\"[val thing]\");",
+ 'const var1 = $("[val thing]");',
"return `This is: ${var1}`;",
])
})
@@ -116,17 +112,19 @@ describe("Test that the string processing works correctly", () => {
it("should handle square brackets with properties", () => {
const response = convertToJS("{{ [user].[_id] }}")
checkLines(response, [
- "const var1 = $(\"[user].[_id]\");",
+ 'const var1 = $("[user].[_id]");',
"return `${var1}`;",
])
})
it("should handle multiple complex statements", () => {
- const response = convertToJS("average: {{ avg ( abs val1 ) val2 }} add: {{ add 1 2 }}")
+ const response = convertToJS(
+ "average: {{ avg ( abs val1 ) val2 }} add: {{ add 1 2 }}"
+ )
checkLines(response, [
- "const var1 = helpers.avg(helpers.abs($(\"val1\")), $(\"val2\"));",
+ 'const var1 = helpers.avg(helpers.abs($("val1")), $("val2"));',
"const var2 = helpers.add(1, 2);",
"return `average: ${var1} add: ${var2}`;",
])
})
-})
\ No newline at end of file
+})
diff --git a/packages/string-templates/test/helpers.spec.js b/packages/string-templates/test/helpers.spec.js
index a587ca60dd..c047947fbf 100644
--- a/packages/string-templates/test/helpers.spec.js
+++ b/packages/string-templates/test/helpers.spec.js
@@ -266,10 +266,7 @@ describe("test the string helpers", () => {
})
it("should allow use of the ellipsis helper", async () => {
- const output = await processString(
- "{{ ellipsis \"adfasdfasdfasf\" 7 }}",
- {},
- )
+ const output = await processString('{{ ellipsis "adfasdfasdfasf" 7 }}', {})
expect(output).toBe("adfasdf…")
})
})
diff --git a/packages/string-templates/test/javascript.spec.js b/packages/string-templates/test/javascript.spec.js
index 4ec7c48b1e..bbc1cce246 100644
--- a/packages/string-templates/test/javascript.spec.js
+++ b/packages/string-templates/test/javascript.spec.js
@@ -140,4 +140,4 @@ describe("check JS helpers", () => {
const output = processJS(`return helpers.toInt(4.3)`)
expect(output).toBe(4)
})
-})
\ No newline at end of file
+})