import { DriverUtils } from "../../../src/driver/DriverUtils" import { expect } from "chai" describe("github issues > #3737 Should URL-decode the user info of a data source URI", () => { it("should parse URL with percent-encoded username", () => { const obj: any = { username: "user.name@domain.com", password: "password", host: "host", database: "database", port: 8888, } const url = `postgres://${encodeURIComponent(obj.username)}:${ obj.password }@${obj.host}:${obj.port}/${obj.database}` const options = DriverUtils.buildDriverOptions({ url }) expect(options.username).to.eql(obj.username) }) it("should parse URL with percent-encoded password", () => { const obj: any = { username: "user", password: "pass #w@rd ?", host: "host", database: "database", port: 8888, } const url = `postgres://${obj.username}:${encodeURIComponent( obj.password, )}@${obj.host}:${obj.port}/${obj.database}` const options = DriverUtils.buildDriverOptions({ url }) expect(options.password).to.eql(obj.password) }) })