Fix yet more tests.
This commit is contained in:
parent
03c514be4c
commit
15a30b1d9e
|
@ -49,7 +49,7 @@ import * as uuid from "uuid"
|
||||||
import { Knex } from "knex"
|
import { Knex } from "knex"
|
||||||
import { InternalTables } from "../../../db/utils"
|
import { InternalTables } from "../../../db/utils"
|
||||||
import { withEnv } from "../../../environment"
|
import { withEnv } from "../../../environment"
|
||||||
import { JsTimeoutError } from "@budibase/string-templates/src/errors"
|
import { JsTimeoutError } from "@budibase/string-templates"
|
||||||
|
|
||||||
const timestamp = new Date("2023-01-26T11:48:57.597Z").toISOString()
|
const timestamp = new Date("2023-01-26T11:48:57.597Z").toISOString()
|
||||||
tk.freeze(timestamp)
|
tk.freeze(timestamp)
|
||||||
|
@ -77,13 +77,13 @@ async function waitForEvent(
|
||||||
}
|
}
|
||||||
|
|
||||||
describe.each([
|
describe.each([
|
||||||
// ["lucene", undefined],
|
["lucene", undefined],
|
||||||
["sqs", undefined],
|
["sqs", undefined],
|
||||||
// [DatabaseName.POSTGRES, getDatasource(DatabaseName.POSTGRES)],
|
[DatabaseName.POSTGRES, getDatasource(DatabaseName.POSTGRES)],
|
||||||
// [DatabaseName.MYSQL, getDatasource(DatabaseName.MYSQL)],
|
[DatabaseName.MYSQL, getDatasource(DatabaseName.MYSQL)],
|
||||||
// [DatabaseName.SQL_SERVER, getDatasource(DatabaseName.SQL_SERVER)],
|
[DatabaseName.SQL_SERVER, getDatasource(DatabaseName.SQL_SERVER)],
|
||||||
// [DatabaseName.MARIADB, getDatasource(DatabaseName.MARIADB)],
|
[DatabaseName.MARIADB, getDatasource(DatabaseName.MARIADB)],
|
||||||
// [DatabaseName.ORACLE, getDatasource(DatabaseName.ORACLE)],
|
[DatabaseName.ORACLE, getDatasource(DatabaseName.ORACLE)],
|
||||||
])("/rows (%s)", (providerType, dsProvider) => {
|
])("/rows (%s)", (providerType, dsProvider) => {
|
||||||
const isInternal = dsProvider === undefined
|
const isInternal = dsProvider === undefined
|
||||||
const isLucene = providerType === "lucene"
|
const isLucene = providerType === "lucene"
|
||||||
|
|
|
@ -95,15 +95,38 @@ export function processJS(handlebars: string, context: any) {
|
||||||
} catch (error: any) {
|
} catch (error: any) {
|
||||||
onErrorLog && onErrorLog(error)
|
onErrorLog && onErrorLog(error)
|
||||||
|
|
||||||
|
// The error handling below is quite messy, because it has fallen to
|
||||||
|
// string-templates to handle a variety of types of error specific to usages
|
||||||
|
// above it in the stack. It would be nice some day to refactor this to
|
||||||
|
// allow each user of processStringSync to handle errors in the way they see
|
||||||
|
// fit.
|
||||||
|
|
||||||
|
// This is to catch the error vm.runInNewContext() throws when the timeout
|
||||||
|
// is exceeded.
|
||||||
|
if (error.code === "ERR_SCRIPT_EXECUTION_TIMEOUT") {
|
||||||
|
return "Timed out while executing JS"
|
||||||
|
}
|
||||||
|
|
||||||
|
// This is to catch the JsRequestTimeoutError we throw when we detect a
|
||||||
|
// timeout across an entire request in the backend. We use a magic string
|
||||||
|
// because we can't import from the backend into string-templates.
|
||||||
if (error.code === "JS_REQUEST_TIMEOUT_ERROR") {
|
if (error.code === "JS_REQUEST_TIMEOUT_ERROR") {
|
||||||
return error.message
|
return error.message
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// This is to catch the JsTimeoutError we throw when we detect a timeout in
|
||||||
|
// a single JS execution.
|
||||||
if (error.code === JsTimeoutError.code) {
|
if (error.code === JsTimeoutError.code) {
|
||||||
return JsTimeoutError.message
|
return JsTimeoutError.message
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// This is to catch the error that happens if a user-supplied JS script
|
||||||
|
// throws for reasons introduced by the user.
|
||||||
if (error.code === UserScriptError.code) {
|
if (error.code === UserScriptError.code) {
|
||||||
throw error
|
throw error
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// If all else fails, generic error message.
|
||||||
return "Error while executing JS"
|
return "Error while executing JS"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue