From e1f17b7a726e935c066a7c08186e64e2a8e8e3d1 Mon Sep 17 00:00:00 2001 From: Sangmin Yoon Date: Wed, 13 Nov 2024 13:01:00 +0900 Subject: [PATCH] refactor: Upgrade PostgreSQL & PostGIS for development --- .github/workflows/test.yml | 2 +- docker-compose.yml | 2 +- packages/cormo/test/cases/type_compare.ts | 52 ++++++++++++++++------- packages/cormo/test/support/common.ts | 2 - 4 files changed, 38 insertions(+), 20 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index d54d49ff..6edf936b 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -27,7 +27,7 @@ jobs: ports: - 21861:27017 postgres: - image: mdillon/postgis:9.6-alpine + image: postgis/postgis:16-3.5 env: POSTGRES_DB: cormo_test POSTGRES_USER: cormo_test diff --git a/docker-compose.yml b/docker-compose.yml index b9e7e0b8..3fc3a6de 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -17,7 +17,7 @@ services: - 21861:27017 postgres: - image: mdillon/postgis:9.6-alpine + image: postgis/postgis:16-3.5 environment: POSTGRES_DB: cormo_test POSTGRES_USER: cormo_test diff --git a/packages/cormo/test/cases/type_compare.ts b/packages/cormo/test/cases/type_compare.ts index b7f9e920..6e721c21 100644 --- a/packages/cormo/test/cases/type_compare.ts +++ b/packages/cormo/test/cases/type_compare.ts @@ -84,38 +84,58 @@ export default function (models: { Type: typeof Type; connection: cormo.Connecti }); it('compare string', async () => { + // string comparison is a little different between DBMSs const data = [{ string: '1' }, { string: 'a' }, { string: 'A' }, { string: 'K' }]; await models.Type.createBulk(data); let records = await models.Type.where({ string: 'a' }); - // some adapters(currently, MySQL) may do case insensitive comparison. - // skip test for now + records.sort((a, b) => (a.string! < b.string! ? -1 : 1)); if (records.length === 2) { - return; + expect(records).to.have.length(2); + expect(records[0].string).to.equal('A'); + expect(records[1].string).to.equal('a'); + } else { + expect(records).to.have.length(1); + expect(records[0].string).to.equal('a'); } - expect(records).to.have.length(1); - expect(records[0].string).to.equal('a'); records = await models.Type.where({ string: { $lt: 'D' } }); - expect(records).to.have.length(2); records.sort((a, b) => (a.string! < b.string! ? -1 : 1)); - expect(records[0].string).to.equal('1'); - expect(records[1].string).to.equal('A'); + if (records.length === 3) { + expect(records).to.have.length(3); + expect(records[0].string).to.equal('1'); + expect(records[1].string).to.equal('A'); + expect(records[2].string).to.equal('a'); + } else { + expect(records).to.have.length(2); + expect(records[0].string).to.equal('1'); + expect(records[1].string).to.equal('A'); + } }); it('compare text', async () => { + // string comparison is a little different between DBMSs const data = [{ text: '1' }, { text: 'a' }, { text: 'A' }, { text: 'K' }]; await models.Type.createBulk(data); let records = await models.Type.where({ text: 'a' }); - // some adapters(currently, MySQL) may do case insensitive comparison. - // skip test for now + records.sort((a, b) => (a.text! < b.text! ? -1 : 1)); if (records.length === 2) { - return; + expect(records).to.have.length(2); + expect(records[0].text).to.equal('A'); + expect(records[1].text).to.equal('a'); + } else { + expect(records).to.have.length(1); + expect(records[0].text).to.equal('a'); } - expect(records).to.have.length(1); - expect(records[0].text).to.equal('a'); records = await models.Type.where({ text: { $lt: 'D' } }); - expect(records).to.have.length(2); records.sort((a, b) => (a.text! < b.text! ? -1 : 1)); - expect(records[0].text).to.equal('1'); - expect(records[1].text).to.equal('A'); + if (records.length === 3) { + expect(records).to.have.length(3); + expect(records[0].text).to.equal('1'); + expect(records[1].text).to.equal('A'); + expect(records[2].text).to.equal('a'); + } else { + expect(records).to.have.length(2); + expect(records[0].text).to.equal('1'); + expect(records[1].text).to.equal('A'); + } }); } diff --git a/packages/cormo/test/support/common.ts b/packages/cormo/test/support/common.ts index 676a4ed0..94350cd6 100644 --- a/packages/cormo/test/support/common.ts +++ b/packages/cormo/test/support/common.ts @@ -1,5 +1,3 @@ -import path from 'path'; -import url from 'url'; import * as cormo from '../../lib/esm/index.js'; const db_configs: { [db: string]: any } = {