From c9ca6fed753037a8356712e3f0b9ed6399f4e5c7 Mon Sep 17 00:00:00 2001 From: Jan Melcher Date: Mon, 27 Nov 2023 17:48:45 +0100 Subject: [PATCH] test: verify that unicode in names of non-cruddl collections does not cause issues --- .github/workflows/ci.yml | 4 +-- .../arangodb/arangodb-adapter.spec.ts | 32 +++++++++++++++++++ 2 files changed, 34 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0c930b858..72b05ea71 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -14,8 +14,8 @@ jobs: with: node-version: ${{ matrix.node-version }} - run: - docker run --name arangodb -p 127.0.0.1:8529:8529 -d -e ARANGO_NO_AUTH=1 ${{ - matrix.arango-image }} + docker run --name arangodb -p 127.0.0.1:8529:8529 -d -e ARANGO_NO_AUTH=1 + --database.extended-names-databases=true ${{ matrix.arango-image }} - run: timeout 10 docker logs --follow arangodb || true # wait until arangodb is started - run: curl -L http://localhost:8529/_api/version - run: npm ci diff --git a/spec/database/arangodb/arangodb-adapter.spec.ts b/spec/database/arangodb/arangodb-adapter.spec.ts index ebcb190cf..17ff532f8 100644 --- a/spec/database/arangodb/arangodb-adapter.spec.ts +++ b/spec/database/arangodb/arangodb-adapter.spec.ts @@ -151,5 +151,37 @@ describe('ArangoDBAdapter', () => { }, ]); }); + + it('it does not care about other collections using unicode names', async function () { + // can't use arrow function because we need the "this" + if (isArangoDBDisabled()) { + (this as any).skip(); + return; + } + + const model = createSimpleModel(gql` + type Delivery @rootEntity { + deliveryNumber: String + } + `); + + const dbConfig = await createTempDatabase(); + const adapter = new ArangoDBAdapter({ + ...dbConfig, + createIndicesInBackground: true, + }); + const db = getTempDatabase(); + await db.collection('unübertroffen-gute-collection\uD83D\uDCA5').create({}); + + await adapter.updateSchema(model); + + const collections = (await db.listCollections()).map((c) => c.name); + + expect(collections).to.deep.equalInAnyOrder([ + 'billingEntities', + 'deliveries', + 'unübertroffen-gute-collection\uD83D\uDCA5', + ]); + }); }); });