diff --git a/packages/federation-server/src/__testData__/docker-compose.yml b/packages/federation-server/src/__testData__/docker-compose.yml index ddb51bf3..df75879e 100644 --- a/packages/federation-server/src/__testData__/docker-compose.yml +++ b/packages/federation-server/src/__testData__/docker-compose.yml @@ -3,6 +3,7 @@ version: '3.8' services: postgresql: image: postgres:13-bullseye + container_name: postgresql volumes: - ./synapse-data/matrix.example.com.log.config:/data/matrix.example.com.log.config - ./db/init-synapse-db.sh:/docker-entrypoint-initdb.d/init-synapse-db.sh @@ -23,6 +24,7 @@ services: synapse-federation: &synapse_template image: matrixdotorg/synapse:v1.89.0 + container_name: synapse-federation volumes: - ./synapse-data:/data - ./nginx/ssl/ca.pem:/etc/ssl/certs/ca.pem @@ -44,6 +46,7 @@ services: synapse-1: <<: *synapse_template + container_name: synapse-1 environment: - UID=${MYUID} - VIRTUAL_PORT=8008 @@ -52,6 +55,7 @@ services: synapse-2: <<: *synapse_template + container_name: synapse-2 environment: - UID=${MYUID} - VIRTUAL_PORT=8008 @@ -60,6 +64,7 @@ services: synapse-3: <<: *synapse_template + container_name: synapse-3 environment: - UID=${MYUID} - VIRTUAL_PORT=8008 @@ -93,6 +98,7 @@ services: federation-server: image: federation-server + container_name: federation-server build: context: ../../../.. dockerfile: ./packages/federation-server/Dockerfile @@ -117,6 +123,7 @@ services: identity-server-1: &identity-server-template image: identity-server + container_name: identity-server-1 build: context: ../../../.. dockerfile: ./packages/federation-server/src/__testData__/identity-server/Dockerfile @@ -139,6 +146,7 @@ services: identity-server-2: <<: *identity-server-template + container_name: identity-server-2 depends_on: annuaire: condition: service_started @@ -156,6 +164,7 @@ services: identity-server-3: <<: *identity-server-template + container_name: identity-server-3 depends_on: annuaire: condition: service_started @@ -173,6 +182,7 @@ services: nginx-proxy: image: nginxproxy/nginx-proxy + container_name: nginx-proxy ports: - 443:443 volumes: diff --git a/packages/federation-server/src/index.test.ts b/packages/federation-server/src/index.test.ts index d374d670..0a149ff5 100644 --- a/packages/federation-server/src/index.test.ts +++ b/packages/federation-server/src/index.test.ts @@ -1,5 +1,4 @@ import { Hash } from '@twake/crypto' -import dockerComposeV1, { v2 as dockerComposeV2 } from 'docker-compose' import express from 'express' import fs from 'fs' import type * as http from 'http' @@ -57,7 +56,6 @@ describe('Federation server', () => { }) describe('Integration tests', () => { - let containerNameSuffix: string let startedCompose: StartedDockerComposeEnvironment let identity1IPAddress: string let identity2IPAddress: string @@ -172,43 +170,17 @@ describe('Federation server', () => { syswideCas.addCAs( path.join(pathToTestDataFolder, 'nginx', 'ssl', 'ca.pem') ) - Promise.allSettled([dockerComposeV1.version(), dockerComposeV2.version()]) - // eslint-disable-next-line @typescript-eslint/promise-function-async - .then((results) => { - const promiseSucceededIndex = results.findIndex( - (res) => res.status === 'fulfilled' - ) - if (promiseSucceededIndex === -1) { - throw new Error('Docker compose is not installed') - } - containerNameSuffix = promiseSucceededIndex === 0 ? '_' : '-' - return new DockerComposeEnvironment( - path.join(pathToTestDataFolder), - 'docker-compose.yml' - ) - .withEnvironment({ MYUID: os.userInfo().uid.toString() }) - .withWaitStrategy( - `postgresql${containerNameSuffix}1`, - Wait.forHealthCheck() - ) - .withWaitStrategy( - `synapse-federation${containerNameSuffix}1`, - Wait.forHealthCheck() - ) - .withWaitStrategy( - `synapse-1${containerNameSuffix}1`, - Wait.forHealthCheck() - ) - .withWaitStrategy( - `synapse-2${containerNameSuffix}1`, - Wait.forHealthCheck() - ) - .withWaitStrategy( - `synapse-3${containerNameSuffix}1`, - Wait.forHealthCheck() - ) - .up() - }) + new DockerComposeEnvironment( + path.join(pathToTestDataFolder), + 'docker-compose.yml' + ) + .withEnvironment({ MYUID: os.userInfo().uid.toString() }) + .withWaitStrategy('postgresql', Wait.forHealthCheck()) + .withWaitStrategy('synapse-federation', Wait.forHealthCheck()) + .withWaitStrategy('synapse-1', Wait.forHealthCheck()) + .withWaitStrategy('synapse-2', Wait.forHealthCheck()) + .withWaitStrategy('synapse-3', Wait.forHealthCheck()) + .up() // eslint-disable-next-line @typescript-eslint/promise-function-async .then((upResult) => { startedCompose = upResult @@ -275,10 +247,10 @@ describe('Federation server', () => { beforeAll((done) => { identity1IPAddress = startedCompose - .getContainer(`identity-server-1${containerNameSuffix}1`) + .getContainer(`identity-server-1`) .getIpAddress('test') identity2IPAddress = startedCompose - .getContainer(`identity-server-2${containerNameSuffix}1`) + .getContainer(`identity-server-2`) .getIpAddress('test') confOriginalContent = fs.readFileSync( @@ -295,9 +267,8 @@ describe('Federation server', () => { 'utf-8' ) - federationServerContainer = startedCompose.getContainer( - `federation-server${containerNameSuffix}1` - ) + federationServerContainer = + startedCompose.getContainer('federation-server') federationServerContainer .restart() @@ -746,25 +717,19 @@ describe('Federation server', () => { 'Certificates files for federation server has not been created' ) return Promise.all([ - startedCompose - .getContainer(`identity-server-1${containerNameSuffix}1`) - .restart(), - startedCompose - .getContainer(`identity-server-2${containerNameSuffix}1`) - .restart(), - startedCompose - .getContainer(`identity-server-3${containerNameSuffix}1`) - .restart() + startedCompose.getContainer('identity-server-1').restart(), + startedCompose.getContainer('identity-server-2').restart(), + startedCompose.getContainer('identity-server-3').restart() ]) }) // eslint-disable-next-line @typescript-eslint/promise-function-async .then(() => { identity1IPAddress = startedCompose - .getContainer(`identity-server-1${containerNameSuffix}1`) + .getContainer(`identity-server-1`) .getIpAddress('test') identity2IPAddress = startedCompose - .getContainer(`identity-server-2${containerNameSuffix}1`) + .getContainer(`identity-server-2`) .getIpAddress('test') const testConfig: Config = { @@ -776,16 +741,16 @@ describe('Federation server', () => { database_user: 'twake', database_password: 'twake!1', database_host: `${startedCompose - .getContainer(`postgresql${containerNameSuffix}1`) + .getContainer(`postgresql`) .getHost()}:5432`, database_name: 'federation', ldap_base: 'dc=example,dc=com', ldap_uri: `ldap://${startedCompose - .getContainer(`postgresql${containerNameSuffix}1`) + .getContainer(`postgresql`) .getHost()}:389`, matrix_database_engine: 'pg', matrix_database_host: `${startedCompose - .getContainer(`postgresql${containerNameSuffix}1`) + .getContainer(`postgresql`) .getHost()}:5432`, matrix_database_name: 'synapsefederation', matrix_database_user: 'synapse',