Я нашёл причину: к сожалению или к счастью она не связана с конфигами.
В typeorm есть ReturningResultsEntityUpdator.ts, в котором есть такой код:
if (this.queryRunner.connection.driver instanceof OracleDriver && insertResult.raw instanceof Array && this.expressionMap.extraReturningColumns.length > 0) {
insertResult.raw = insertResult.raw.reduce((newRaw, rawItem, rawItemIndex) => {
newRaw[this.expressionMap.extraReturningColumns[rawItemIndex].databaseName] = rawItem[0];
return newRaw;
}, {} as ObjectLiteral);
}
Код отрабатывает только для БД oracle и преобразует возвращаемые результаты в подходящий вид (по аналогии с другими БД).
Непосредственно проблема заключается в том, что в Jest context глобальный объект Array заменяется на что-то другое и instanceof Array возвращает false, хотя должен true.
В jest на это заведен баг
https://github.com/facebook/jest/issues/2549, который судя по всему ещё и завязан на поведение vm
https://github.com/nodejs/node-v0.x-archive/issues/1277.
Замена insertResult.raw instanceof Array на Array.isArray(insertResult.raw) помогает, но таких мест как минимум 4.