import "reflect-metadata" import { DataSource } from "../../../src/data-source/DataSource" import { createTestingConnections, closeTestingConnections, reloadTestingDatabases, } from "../../utils/test-utils" import { Flight } from "./entity/Flight" import { expect } from "chai" describe.skip("github issues > #838 Time zones for timestamp columns are incorrectly fetched and persisted in PostgreSQL", () => { let connections: DataSource[] let postgresConnection: DataSource const testDateString = "1989-08-16T10:00:00+03:00" before(async () => { connections = await createTestingConnections({ entities: [__dirname + "/entity/*{.js,.ts}"], enabledDrivers: ["postgres"], }) postgresConnection = connections.find( (connection) => connection.driver.options.type === "postgres", )! }) beforeEach(() => reloadTestingDatabases(connections)) after(() => closeTestingConnections(connections)) it("should return date & time stored in PostgreSQL database correctly", async () => { // await postgresConnection.query(`INSERT INTO "flight" ("id", "date") VALUES (1, '1989-08-16 14:00:00.000000 +03:00');`); // const results = await postgresConnection.query(`SELECT date FROM "flight" WHERE id = 1`); // console.log(results); await postgresConnection.query( `INSERT INTO "flight" ("id", "date") VALUES (1, '${testDateString}');`, ) const flight = await postgresConnection.manager.findOneBy(Flight, { id: 1, }) expect(flight!.date.toISOString()).to.equal( new Date(testDateString).toISOString(), ) }) it("should persist date & time to the PostgreSQL database correctly", async () => { const testDate = new Date(testDateString) await postgresConnection.manager.save(new Flight(1, testDate)) const results = await postgresConnection.query( `SELECT "date" FROM "flight" WHERE id = 1`, ) expect(results[0].date.toISOString()).to.equal(testDate.toISOString()) }) })