This commit is contained in:
Mel O'Hagan 2022-11-28 12:05:19 +00:00
parent 38210cebe5
commit cde3c2e8ff
2 changed files with 26 additions and 10 deletions

View File

@ -106,7 +106,11 @@ function bindingTypeCoerce(bindings: any[]) {
} }
// if not a number, see if it is a date - important to do in this order as any // if not a number, see if it is a date - important to do in this order as any
// integer will be considered a valid date // integer will be considered a valid date
else if (/^\d/.test(binding) && dayjs(binding).isValid() && !binding.includes(",")) { else if (
/^\d/.test(binding) &&
dayjs(binding).isValid() &&
!binding.includes(",")
) {
bindings[i] = dayjs(binding).toDate() bindings[i] = dayjs(binding).toDate()
} }
} }

View File

@ -80,30 +80,42 @@ describe("MySQL Integration", () => {
const date = new Date() const date = new Date()
await config.integration.read({ await config.integration.read({
sql, sql,
bindings: [11, date, ["a", "b", "c"], { id: 1}] bindings: [11, date, ["a", "b", "c"], { id: 1 }],
}) })
expect(config.integration.client.query).toHaveBeenCalledWith(sql, [11, date, ["a", "b", "c"], { id: 1}]) expect(config.integration.client.query).toHaveBeenCalledWith(sql, [
11,
date,
["a", "b", "c"],
{ id: 1 },
])
}) })
it("parses strings matching a number regex", async () => { it("parses strings matching a number regex", async () => {
const sql = "select * from users;" const sql = "select * from users;"
await config.integration.read({ await config.integration.read({
sql, sql,
bindings: ["101", "3.14"] bindings: ["101", "3.14"],
}) })
expect(config.integration.client.query).toHaveBeenCalledWith(sql, [101, 3.14]) expect(config.integration.client.query).toHaveBeenCalledWith(
sql,
[101, 3.14]
)
}) })
it("parses strings matching a valid date format", async () => { it("parses strings matching a valid date format", async () => {
const sql = "select * from users;" const sql = "select * from users;"
await config.integration.read({ await config.integration.read({
sql, sql,
bindings: ["2001-10-30", "2010-09-01T13:30:59.123Z", "2021-02-05 12:01 PM"] bindings: [
"2001-10-30",
"2010-09-01T13:30:59.123Z",
"2021-02-05 12:01 PM",
],
}) })
expect(config.integration.client.query).toHaveBeenCalledWith(sql, [ expect(config.integration.client.query).toHaveBeenCalledWith(sql, [
new Date("2001-10-30T00:00:00.000Z"), new Date("2001-10-30T00:00:00.000Z"),
new Date("2010-09-01T13:30:59.123Z"), new Date("2010-09-01T13:30:59.123Z"),
new Date("2021-02-05T12:01:00.000Z") new Date("2021-02-05T12:01:00.000Z"),
]) ])
}) })
@ -111,10 +123,10 @@ describe("MySQL Integration", () => {
const sql = "select * from users;" const sql = "select * from users;"
await config.integration.read({ await config.integration.read({
sql, sql,
bindings: ["1,2,2017"] bindings: ["1,2,2017"],
}) })
expect(config.integration.client.query).toHaveBeenCalledWith(sql, [ expect(config.integration.client.query).toHaveBeenCalledWith(sql, [
"1,2,2017" "1,2,2017",
]) ])
}) })
}) })