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 { InternalTables } from "../../../db/utils"
|
||||
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()
|
||||
tk.freeze(timestamp)
|
||||
|
@ -77,13 +77,13 @@ async function waitForEvent(
|
|||
}
|
||||
|
||||
describe.each([
|
||||
// ["lucene", undefined],
|
||||
["lucene", undefined],
|
||||
["sqs", undefined],
|
||||
// [DatabaseName.POSTGRES, getDatasource(DatabaseName.POSTGRES)],
|
||||
// [DatabaseName.MYSQL, getDatasource(DatabaseName.MYSQL)],
|
||||
// [DatabaseName.SQL_SERVER, getDatasource(DatabaseName.SQL_SERVER)],
|
||||
// [DatabaseName.MARIADB, getDatasource(DatabaseName.MARIADB)],
|
||||
// [DatabaseName.ORACLE, getDatasource(DatabaseName.ORACLE)],
|
||||
[DatabaseName.POSTGRES, getDatasource(DatabaseName.POSTGRES)],
|
||||
[DatabaseName.MYSQL, getDatasource(DatabaseName.MYSQL)],
|
||||
[DatabaseName.SQL_SERVER, getDatasource(DatabaseName.SQL_SERVER)],
|
||||
[DatabaseName.MARIADB, getDatasource(DatabaseName.MARIADB)],
|
||||
[DatabaseName.ORACLE, getDatasource(DatabaseName.ORACLE)],
|
||||
])("/rows (%s)", (providerType, dsProvider) => {
|
||||
const isInternal = dsProvider === undefined
|
||||
const isLucene = providerType === "lucene"
|
||||
|
|
|
@ -95,15 +95,38 @@ export function processJS(handlebars: string, context: any) {
|
|||
} catch (error: any) {
|
||||
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") {
|
||||
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) {
|
||||
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) {
|
||||
throw error
|
||||
}
|
||||
|
||||
// If all else fails, generic error message.
|
||||
return "Error while executing JS"
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue