diff --git a/packages/modules/localstack/src/localstack-container.test.ts b/packages/modules/localstack/src/localstack-container.test.ts index bfb39676d..c690bf04b 100644 --- a/packages/modules/localstack/src/localstack-container.test.ts +++ b/packages/modules/localstack/src/localstack-container.test.ts @@ -110,4 +110,19 @@ describe("LocalStackContainer", { timeout: 180_000 }, () => { expect(exitCode).toBe(0); expect(output).toContain(`${LABEL_TESTCONTAINERS_SESSION_ID}=${sessionId}`); }); + + it("should concatenate sessionId label to LAMBDA_DOCKER_FLAGS", async () => { + const container = await new LocalstackContainer() + .withEnvironment({ + LAMBDA_DOCKER_FLAGS: `-l mylabel=myvalue`, + }) + .start(); + const sessionId = container.getLabels()[LABEL_TESTCONTAINERS_SESSION_ID]; + + const { output, exitCode } = await container.exec(["printenv", "LAMBDA_DOCKER_FLAGS"]); + + expect(exitCode).toBe(0); + expect(output).toContain(`${LABEL_TESTCONTAINERS_SESSION_ID}=${sessionId}`); + expect(output).toContain(`mylabel=myvalue`); + }); }); diff --git a/packages/modules/localstack/src/localstack-container.ts b/packages/modules/localstack/src/localstack-container.ts index c0ed1f394..7a5180f72 100644 --- a/packages/modules/localstack/src/localstack-container.ts +++ b/packages/modules/localstack/src/localstack-container.ts @@ -42,7 +42,10 @@ export class LocalstackContainer extends GenericContainer { private async flagLambdaSessionId(): Promise { const client = await getContainerRuntimeClient(); const reaper = await getReaper(client); - this.withEnvironment({ LAMBDA_DOCKER_FLAGS: `-l ${LABEL_TESTCONTAINERS_SESSION_ID}=${reaper.sessionId}` }); + + this.withEnvironment({ + LAMBDA_DOCKER_FLAGS: `${this.environment["LAMBDA_DOCKER_FLAGS"] ?? ""} -l ${LABEL_TESTCONTAINERS_SESSION_ID}=${reaper.sessionId}`, + }); } protected override async beforeContainerCreated(): Promise {